2016-07-01 108 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]; 
});