기존 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");
'javascript' 카테고리의 다른 글
자바스크립트로 폰트설치 여부 확인 (0) | 2012.08.28 |
---|---|
유용한 자바스크립트 함수들 (0) | 2011.04.25 |
Sencha Touch 1.1 Release with BlackBerry Support (0) | 2011.03.25 |