Jeśli chcesz znaleźć określony obiekt za pomocą funkcji wyszukiwania, spróbuj czegoś takiego:
function findArray(value){
let countLayer = dataLayer.length;
for(var x = 0 ; x < countLayer ; x++){
if(dataLayer[x].user){
let newArr = dataLayer[x].user;
let data = newArr[value];
return data;
}
}
return null;
}
findArray("id");
Oto przykładowy obiekt:
layerObj = {
0: { gtm.start :1232542, event: "gtm.js"},
1: { event: "gtm.dom", gtm.uniqueEventId: 52},
2: { visitor id: "abcdef2345"},
3: { user: { id: "29857239", verified: "Null", user_profile: "Personal", billing_subscription: "True", partners_user: "adobe"}
}
Kod dokona iteracji i znajdzie tablicę „user” oraz wyszuka obiekt, którego szukasz.
Mój problem polegał na tym, że indeks tablicy zmieniał się przy każdym odświeżaniu okna i znajdował się w trzeciej lub drugiej tablicy, ale to nie ma znaczenia.
Zadziałało dla mnie jak urok!
W Twoim przykładzie jest trochę krótszy:
function findArray(value){
let countLayer = Object.length;
for(var x = 0 ; x < countLayer ; x++){
if(Object[x].dinner === value){
return Object[x];
}
}
return null;
}
findArray('sushi');