본문 바로가기

javascript

Underscore.js를 이용하여 javascript Array Merge하기

기존 Array에 신규 Array값을 Merge하려면 for loop를 돌면서 키값을 비교하며 교체하는 방법은 있으나

그런 날코딩(?)은 너무 우아하지 않아서 찾아보니 Underscore.js로 가능하더라.


기존 Array로 Merge대상

var ori = [

{"KEY": "A", "VALUE" : 1 }, 

{"KEY": "B", "VALUE" : 2 }, 

{"KEY": "C", "VALUE" : 3 },

{"KEY": "D", "VALUE" : 4 }

];


신규 Array

var inp = [

{"KEY": "D", "VALUE" : 44 },

{"KEY": "E", "VALUE" : 5 }

];


신규 Array의 각 Object의 "KEY"값을 기준으로 기존 Array를 추가하거나 변경하는 작업으로 원하는 결과 값은 아래와 같다.


[

{"KEY":"A","VALUE":1},

{"KEY":"B","VALUE":2},

{"KEY":"C","VALUE":3},

{"KEY":"D","VALUE":44},

{"KEY":"E","VALUE":5}

]


Underscore.js의 uniq, union 메서드를 조합하면 원하는 결과 값을 얻을 수 있으며 아래 소스상에서 sortBy메서드는 Object의 "KEY" 값 정렬을 위해 사용되었다.


_.sortBy(

_.uniq(

_.union(inp, ori), false, function(item, ori){ return item.KEY; }

)

, "KEY");