두개의 배열을 하나의 배열로 합쳐보자.
- 각 배열의 요소는 객체이다.
- 각 배열의 객체의 "id" 프로퍼티가 일치하는 객체끼리 합친다.
- 남자이고 나이가 30이상이면 target을 true로, 아니면 false로
Trial 1. underscore의 map, extend, find 함수 활용
const arr1 = [
{name: 'owen', gender: 'male', age: 36, id: 11},
{name: 'bbo', gender: 'female', age: 34, id: 12},
{name: 'woo', gender: 'male', age: 20, id: 13}
];
const arr2 = [
{id: 10, phone: '010-1111-1111'},
{id: 11, phone: '010-2222-2222'},
{id: 12, phone: '010-3333-3333'},
{id: 13, phone: '010-4444-4444'}
];
const arr3 = _.map(arr1, function(item){
return _.extend(item, _.find(arr2, function(i){
return item.id === i.id;
}), {target: item.age >= 30 && item.gender === 'male'})
});
console.log(arr3);
/*[
{'name':'owen','gender':'male','age':36,'id':11,'phone':'010-2222-2222','target':true},
{'name':'bbo','gender':'female','age':34,'id':12,'phone':'010-3333-3333','target':false},
{'name':'woo','gender':'male','age':20,'id':13,'phone':'010-4444-4444','target':false}
]*/
[Check]
- 위에서 find는 findWhere로 대체할 수 있다. 퍼포먼스 차이는 크게 없어 보인다.
댓글 없음:
댓글 쓰기