如果尝试添加具有相同名称的新密钥,我正在尝试编写一个更新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"
}
]
}
答案 0 :(得分:1)
function updateKeyVal() {
$.each(toUpdate, function(i,e) {
$.each(e, function(j, f) {
if (f.name===valToCheck) f.id=11;
});
});
}
答案 1 :(得分: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
});
});