2017-06-17 62 views
0

我jsob物體看起來像這樣如何通過按鍵對值使用lodash在節點JS

{"LAB_123":{"abc":"bde"},"LAB_345":{"abc":"efg"}} 

二JSON對象注入是

{"LAB_123":{"xyz":"dfe"},"LAB_345":{"PQR":"ABC"}} 

我需要加入這兩個對象來創建一個JSON array應該看起來像這樣

{"LAB_123":{"abc":"bde","xyz":"dfe"},"LAB_345":{"abc":"efg","PQR":"ABC"}} 

我可以通過json數組循環來添加鍵值,但是有沒有任何方法od使用lodash會使這段代碼看起來更容易。

+0

https://lodash.com/docs/4.17.4#merge –

回答

1

您可以使用lodash的_.merge()遞歸合併對象。由於合併變異第一對象(1 PARAM),使用空對象,以避免變異原始對象:

const a = {"LAB_123":{"abc":"bde"},"LAB_345":{"abc":"efg"}}; 
 

 
const b = {"LAB_123":{"xyz":"dfe"},"LAB_345":{"PQR":"ABC"}}; 
 

 
const result = _.merge({}, a, b); 
 

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

如果你想對象的數組,可以拆分的結果使用_.toPairs()到鍵/值對,並且將它們映射到對象第一示例:

const a = {"LAB_123":{"abc":"bde"},"LAB_345":{"abc":"efg"}}; 
 

 
const b = {"LAB_123":{"xyz":"dfe"},"LAB_345":{"PQR":"ABC"}}; 
 

 
const result = _({}) 
 
    .merge(a, b) 
 
    .toPairs() 
 
    .map(([key, value]) => ({ [key]: value })) 
 
    .value(); 
 

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