我需要从对象树中替换一个对象,我尝试了几种方法但我不能
let data = [
{
"accountId": 2
},
{
"accountId": 6,
"children": [{
"accountId": 8
}]
},
{
"accountId": 45
}
];
在上面的对象数组中,我需要替换(当我知道 accoundId
时)
{
"accountId": 2
}
到
{
"accountId": 2,
"children": [
{
"accountId": 85
}
]
}
有什么方法/库可以做到这一点。
最佳答案
普通 javascript,使用 Array.prototype.map
函数:
var data = [{ "accountId": 2 }, { "accountId": 6, "children": [{ "accountId": 8 }] }, { "accountId": 45 }];
var newData = { "accountId": 2, "children": [{ "accountId": 85 }] };
data = (function upd(data, n) {
return data.map(e => {
if (e.children) {
var o = {};
o.accountId = e.accountId;
o.children = upd(e.children, n);
return o;
}
else if (e.accountId == 8) {
return n;
} else return e;
});
})(data, newData);
document.write('<pre>' + JSON.stringify(data, 0, 2) + '</pre>');
关于javascript - 替换对象树中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200725/