我想根据父键推送子对象值
样例代码:
let parent = {}
let newobj = {}
function setData(pid, cid, val) {
// let newobj = {}
newobj[cid] = val;
parent[pid] = newobj;
}
setData(1, 0, true)
setData(1, 1, false)
setData(0, 1, true)
console.log(parent)
预期输出为:
{
0: {1: true},
1: {0: true, 1: false}
}
最佳答案
您需要重用父级的现有对象(如果存在)
let parent = {}
function setData(pid, cid, val) {
let newobj = parent[pid] || {};
newobj[cid] = val;
parent[pid] = newobj;
}
setData(1, 0, true)
setData(1, 1, false)
setData(0, 1, true)
console.log(parent)
或者,如果使用es6,则可以一次扩展对象并对其进行更新
let parent = {}
function setData(pid, cid, val) {
parent[pid] = {
...parent[pid],
[cid]: val
}
}
setData(1, 0, true)
setData(1, 1, false)
setData(0, 1, true)
console.log(parent)
(尽管这每次都会创建一个新对象)
关于javascript - 如何根据父键推送子对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50211812/