Javascript更新并忽略目标中未定义的字段

时间:2015-07-22 23:53:24

标签: javascript angularjs underscore.js lodash

我希望基本上更新一个大的javascript对象。但是,前端中的各种工具会添加不必要的字段,在更新对象时应忽略这些字段。我正在使用角度,但如果有必要,可以使用lodash /下划线。我只是希望能够更新现有对象,而无需添加放置在UI中时注入的额外字段。

var ob1 = {
    attr1: 'stuff',
    attr2: 'stuff'
};

var ob2 = {
    attr1: 'changedstuff',
    attr2: 'stuff',
    uiCrap: 'junk'
};

update(ob1, ob2);
// should result in 
// ob1 = { attr1: 'changedstuff', attr2: 'stuff };

有没有人知道是否有任何内置的角度/ JavaScript功能?

1 个答案:

答案 0 :(得分:3)

使用extend()功能:

var ob = _.extend(ob1, _.pick(ob2, _.keys(ob1)));