2016-07-01 68 views
0

这里是2个对象:“功能”从依赖于另一对象键删除对象的值/键/值

object1: { 
    email: somevalue 
    url: somevalue 
    description: somevalue 
} 

object2: { 
    email: someothervalue 
    url: someothervalue 
} 

目标,从object1除去,任意键/值对,对于没有按”每个键t存在于object2上。对象不能合并,因为每个对象的值都非常不同。

这可以通过传统的命令式结构来完成,但我正在寻找一种更实用的方法来做到这一点,在lodash库的帮助下。 你知道的方式来做到这一点,那么结果将是:

object1: { 
    email: somevalue 
    url: somevalue 
} 

回答

2

随着lodash你可以做到以下几点:

_.pick(object1, Object.keys(object2)) 

这将产生一个新的对象

+0

这很好,如果有一个新的对象是好的。 – Pointy

3

你真的不需要lodash。

Object.keys(object1).forEach(function(key) { 
    if (!(key in object2)) 
    delete object1[key]; 
});