기존 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");




저작자 표시
신고

WRITTEN BY
빵군
Web Programmer HOONS닷넷(http://www.hoons.kr) 2011 ASP.NET 시삽 http://about.me/y2kpooh

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 안녕하세요? 경력 15년차 개발자 입니다.
    저는 아직도 Array Merge하는거에 익숙하지 않아서 for문으로 열라 돌렸는데요,
    황군님 블로그 봐서 많은 도움이 됏습니다. 이런분이 제 옆에서 같이 일하면 즐거울텐데 말이죠
    코와붕가
secret