2017-06-22 186 views
0

給定兩個對象:合併兩個對象增加一個鍵值的值的Javascript]

const obj1 = { 
    1: 5, 
    2: 4 
}; 

const obj2 = { 
    1: 10, 
    2: 1, 
    3: 1 
}; 

如何將它們合併與Lodash Merge創造所產生的對象:

const newObj = { 
    1: 15, 
    2: 5, 
    3: 1 
}; 

你有什麼試過?沒有什麼,因爲我不知道如何使用這種方式合併或合併是正確的方式。

+0

合併是不正確的做法,它不結合的屬性,它只是使用其中之一。 – Barmar

+0

@Barmar你可以建議一個正確的方法(與例子)? – TheWebs

+0

嘗試['_.assignWith'](https://lodash.com/docs/4.17.4#assignWith) – Barmar

回答

1

使用_.mergeWith() - 它有一個自定義程序,使您可以定義如何將屬性合併。

const obj1 = { 
 
    1: 5, 
 
    2: 4 
 
}; 
 

 
const obj2 = { 
 
    1: 10, 
 
    2: 1, 
 
    3: 1 
 
}; 
 

 
const result = _.mergeWith({}, obj1, obj2, (o1, o2) => { 
 
    if(_.isNumber(o1)) { 
 
    return o1 + o2; 
 
    } 
 
}); 
 

 
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

相關問題