2

オブジェクトの配列(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オブジェクトでは機能せず、すべてのオブジェクトをループする必要があります。

どんな助けでもありがたいです。

4

2 に答える 2

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.
        }
    }
});

ヒントを教えていただければ幸いです。

于 2012-09-17T08:36:32.827 に答える
0

Array.indexOf(何$.inArrayであるか)は、そのインデックスを検索して返すための要素を必要とします。

以前に知らない要素を検索する必要がある場合は、手動でループする必要があります(アンダースコアなどのライブラリにはヘルパーがあります)。

var idToSearchFor = …;
for (var i=0; i<popUpList.length; i++)
    if (popUpList[i].id == idToSearchFor) {
        // do something
    }

ポップアップにすばやくアクセスするためのインデックスを作成する場合は、それも実行できます。また、明確であるという利点もあります(IDごとに1つの要素のみ)。

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?
于 2012-09-17T08:46:11.897 に答える