我有一个对象数组(JSONized)。像这样:
popUpList = [{
"id":1,
"Name":"My Pop Up",
"VideoUrl":"www.xyz.com/pqr",
"AddToBasketUrl":"www.abc.com?addtoBaketid=1",
"addedToBasket": true
},
{
"id":2,
"Name":"My 2nd Pop Up",
"VideoUrl":"www.xyz.com/mno",
"AddToBasketUrl":"www.abc.com?addtoBaketid=2",
"addedToBasket": false
}]
我的情况是剪辑可以从弹出窗口或主页面添加。因此,我需要在从页面添加到篮子中时编辑JSON对象。
我尝试使用$ .inArray()和类似的方法。我估计要么我做得不对,要么错过了什么。或者,这不适用于JSON对象,我必须遍历每个对象。
任何帮助将不胜感激。
答案 0 :(得分:0)
我不太清楚您想要明确搜索的内容,您可以使用以下方法访问对象中的每个值:
vat id = "1";
// this given example wont work for you bec. of your structure
// but its all about the idea.
var objectOne = yourJsonObject[id];
// You can also append them
var myValue = yourJsonObject.address.zip;
类似于获取的第一个对象的任何其他项目。
为此我会创建一个自定义搜索功能,如下所示:
$.each(popUpList, function(i, v) {
var entryYouWantToFind = "addedToBasket";
if(v[entryYouWantToFind])
{
// do your stuff here.
}
}
});
我希望我能给你一些提示。
答案 1 :(得分:0)
Array.indexOf
($.inArray
是什么)确实需要元素来搜索并返回其索引。
如果您需要搜索之前不知道的元素,则需要手动循环(像Underscore这样的Libs有助手):
var idToSearchFor = …;
for (var i=0; i<popUpList.length; i++)
if (popUpList[i].id == idToSearchFor) {
// do something
}
如果要构建索引以便更快地访问弹出窗口,您也可以这样做。它还具有明确的优点(每个id只有一个元素):
var popUpsById = {};
for (var i=0; i<popUpList.length; i++)
popUpsById[popUpList[i].id] = popUpList[i];
if (idToSearchFor in popUpsById)
// do something with popUpsById[idToSearchFor]
else
// create one?