替换对象中的键

Replace a key in an object

我有:

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 然后获取数组中的唯一项然后手动分配它但我想知道是否有更简单的方法。

不需要 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'
    }
});

_.extend 函数,在 ES6 兼容 Javascript 中作为 Object.assign 提供,可以满足您的需求。

_.extend({ a: 1, b: 2 }, { a: 10 })
// { a: 10, b: 2 }

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