【发布时间】:2020-05-29 14:57:18
【问题描述】:
我有一个对象,我想用新数据更新它。但是,如果其中一个键的值为 undefined,我希望它具有与之前定义的相同的值。
let obj
obj = {
name: 'Bill'
job: 'dev'
age: 22
}
const newObj = {
name: 'Sam',
age: 33
}
Object.keys(obj).forEach(key => {
obj[key] = newObj[key];
});
我要obj返回:
{
name: "Sam"
job:'dev',
age: 33,
}
但它会返回:
{
age: 33,
job: undefined,
name: "Sam"
}
此外,以与原始顺序相同的顺序返回会有所帮助。
【问题讨论】:
-
更新前检查
if(key in newObj) -
472 自 ES2015 以来,对象的迭代顺序遵循一定的规则集,但并不(总是)遵循插入顺序。简单来说,迭代顺序是字符串键的插入顺序和类数字键的升序的组合。
-
@adiga - 它可能仍然存在并具有值
undefined...
标签: javascript object javascript-objects