替换对象中的键

时间:2016-04-13 14:01:45

标签: javascript lodash

我有:

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然后获取数组中唯一的项目,然后手动分配它,但我想知道是否有一个不那么繁琐的方式。

2 个答案:

答案 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 }

该函数比简单赋值更灵活:您可以添加或替换任意数量的键,浅层合并作为参数传递的对象。