例如我有对象:
person = {
Name: 'John',
Address: {
Name: 'NY'
}
}
而且我有一系列属性:
0: Name,
1: Address.Name,
2: Car.Name
我想创建所有不存在的属性(对象)。例如上面的例子,我想得到:
{
Name: 'John',
Address: {
Name: 'NY'
},
Car: {
Name: null
}
}
PS。该阵列是动态构建的。我不知道有哪些属性。
要添加缺少的属性,您可以遍历属性,检查对象中是否存在该属性,然后根据需要添加。
// original object
var person = {
Name: 'John',
Address: {
Name: 'NY'
}
};
// list of all properties
var props = ['Name', 'Address.Name', 'Car.Name'];
// iterate through the properties and add as needed
props.forEach(function(prop) {
var root = person;
prop = prop.split('.'); // split by . to use [] notation subsequently
for(var i=0; i<prop.length; i++) {
if(typeof root[prop[i]] === 'undefined') root[prop[i]] = (i === prop.length-1 ? null : {});
root = root[prop[i]];
}
});
console.log(person);
/*
{
Name: 'John',
Address: {
Name: 'NY'
},
Car: {
Name: null
}
}
*/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句