更新JSON对象
问题描述:
一个快速的问题,我想更新使用javascript不重复的JSON。更新JSON对象
例:
{ "parent":{
"id":"1",
"status":"Bad",
"children":[
{
"id":"2",
"status":"Good",
"children":[
{
"id":"3",
"status":"Bad",
"children":[
]
},
{
"id":"4",
"status":"Bad",
"children":[
]
}
]
},
{
"id":"4",
"status":"Bad",
"children":[
{
"id":"3",
"status":"Bad",
"children":[
]
},
{
"id":"4",
"status":"Bad",
"children":[
]
}
]
}
]
}}
在该树结构中,ID将常见的许多对象。如果我想要更新所有ID为“3”的状态,那么我现在继续进行迭代以查找相应的ID并更新状态。这是非常耗时的,有没有一种方法可以使用ID更新状态而无需迭代。
我发现一个js叫“掐”,但它是没有用的,它在内部做同样的迭代。那么有没有一种方法可以在不进行迭代的情况下更新状态。
我欢迎最好的遍历想法也。
答
你可以存储你的对象是这样的:
objs = [
{"id":"1","status":"Bad",children:[]},
{"id":"2","status":"Good",children:[]},
{"id":"3","status":"Bad",children:[]},
{"id":"4","status":"Bad",children:[]}]
objs[0].children=[objs[1],objs[2]]
objs.map(function(t){t.status="Updated"})
这样通过链接JS手柄PARAMS,你可以用列表做任何 - 的变化也将出现在JSON OBJ。
+0
感谢kirill,截至目前的映射不是我的选择......我使用深度搜索做了最好的遍历迭代... – Harry
我不知道这是可能没有某种形式的迭代。 –
感谢您的回复kevin Bowersox,是否有任何最佳的遍历想法来更新json,如我所料。 – Harry
user2864740,我有你的想法,你要我转换,像地图,然后你要我穿越,有没有什么具体的例子。请让我知道。 – Harry