我有:
var obj = {'a': {some object}, 'b': {some other object}, 'c':{some other object},...}
我想编写一个覆盖原始对象中任何一个键的函数。
myFunction(obj, {'a': {new object}});
console.log(obj);
//{'a': {new object}, 'b': {some other object}, 'c':{some other object},...}
我正在使用lodash。我显然知道我可以做_.keys
然后获取数组中唯一的项目,然后手动分配它,但我想知道是否有一个不那么繁琐的方式。
答案 0 :(得分:3)
不需要Lodash / Underscore,这可以在JavaScript中轻松完成。
obj[key] = newObject;
var obj = {
one: {
1: 'ONE'
},
two: {
2: 'TWO'
},
three: {
3: 'THREE'
}
};
obj['two'] = {
22: 'Two Two'
};
console.log(obj);

<强>更新强>
您可以使用Object.assign()
Object.assign(obj, {
two: {
22: 'Two Two'
}
});
答案 1 :(得分:3)
{ES}兼容Javascript中的_.extend
函数Object.assign
,可以满足您的需求。
_.extend({ a: 1, b: 2 }, { a: 10 })
// { a: 10, b: 2 }
该函数比简单赋值更灵活:您可以添加或替换任意数量的键,浅层合并作为参数传递的对象。