2017-09-13 7 views
0

私はいくつかの異なる更新メッセージで複雑なオブジェクトを返すAPIを扱っています。私は、JQueryのextend(true、objA、objB)関数が、更新を結合するための素晴らしい仕事をすることを発見しました。ただし、プロパティが配列の場合は、連結する代わりに配列を置き換えます。見つかった配列を連結しながらオブジェクトをマージするライブラリ関数はありますか?

だから私はこのようなオブジェクトを持っている:

{thing:{stuff:{whatsit:{foo:[1,2,3]}}}}} 
{thing:{stuff:{whatsit:{foo:[3,4,5,6]}}}}} 

オブジェクトをマージするとき、この結果を与える既存のNPMパッケージまたは他のライブラリがあります:

{thing:{stuff:{whatsit:{foo:[1,2,3,3,4,5,6]}}}}} 

答えて

1

lodashは良いオプションです。あなたのケースに_.mergeWith関数を使うことができます。 lodash APIガイド

function customizer(objValue, srcValue) { 
 
    if (_.isArray(objValue)) { 
 
    return objValue.concat(srcValue); 
 
    } 
 
} 
 
    
 
var object = { 'a': [1], 'b': [2] }; 
 
var other = { 'a': [3], 'b': [4] }; 
 
    
 
_.mergeWith(object, other, customizer); 
 
// => { 'a': [1, 3], 'b': [2, 4] }

+0

ああから の例では、私は_.extendはlodashの唯一の選択肢だと思いました。これは完璧です、特に私はすでにプロジェクトでロダッシュを持っているからです! – PotatoEngineer

関連する問題