2 回答

TA贡献1829条经验 获得超13个赞
这有点通用,因为它不假定源是一个名为的全局变量object:
let array = ["lvl1", "lvl2", "lvl3", "key"];
let value = false;
let createObject = (keys, value) => {
let o, obj = o = {};
let lastKey = keys.pop();
keys.forEach(key => o = o[key] = o[key] || {});
o[lastKey] = value;
return obj;
};
let addToObject = (obj, keys, value) => {
let o, copy = o = JSON.parse(JSON.stringify(obj));
let lastKey = keys.pop();
keys.forEach(key => o = o[key] = o[key] || {});
o[lastKey] = value;
return copy;
};
let x = createObject(array, value);
let y = addToObject(x, ['lvl1'], 3);
let z = addToObject(y, ['a', 'b', 'c'], 4);
console.log(x);
console.log(y);
console.log(z);
添加回答
举报