0

同じ名前の新しいキーを追加しようとすると、jsonキーの値を更新する関数を作成しようとしています。

だからフィドルで-http://jsfiddle.net/adrianjsfiddlenetuser/C6Ssa/57/

[追加]ボタンをクリックすると、jSon配列toUpdateが更新されます。

   name: "addThis2",
   id : 10   

になる必要があります

   name: "addThis2",
   id : 11  

これは発生していませんか?

サンプルJSON:

{
    "toAdd": [
        {
            "name": "addThis",
            "id": 10
        }
    ],
    "toRemove": [
        {
            "name": "removeThis"
        }
    ]
}
4

2 に答える 2

1
function updateKeyVal() {
    $.each(toUpdate, function(i,e) {
        $.each(e, function(j, f) {
            if (f.name===valToCheck) f.id=11;
        });
    });
}​

フィドル

于 2012-05-31T09:37:24.453 に答える
0

次のように配列のインデックスを変更する必要があります。

var toUpdate = {
    toAdd: [],
    toRemove: []
};
toUpdate.toAdd[0].push({
    name: "addThis1",
    id: 10
});
toUpdate.toRemove[0].push({
    name: "removeThis1"
});
toUpdate.toAdd[1].push({
    name: "addThis2",
    id: 10
});
toUpdate.toRemove[1].push({
    name: "removeThis2"
});

その後、試すことができます

$.each(toUpdate, function(index, data) {
   $.each(data, function(key, val) {  // here this refer to toAdd, toRemove..
    console.log(key);   // here this point key of object like name, id ...
    console.log(val[key]);  // output: addThis, addThis, removeThis
  });
});
于 2012-05-31T09:18:17.310 に答える