ex) var arr = [{id : 12, name : 'A'}
,{id : 12, name : 'B'}
,{id : 13, name : 'C'}]
위처럼 id값이 중복되어있는 값이 있었다. 나는 이 데이터를 가지고 반복문을 이용해서 select박스의 option을 추가해야했는데, id값을 따로 가져와서 배열을 만들어도 안되고 Set이나 filter등을 써봐도 답이 안나왔다.
오래 생각하다가 결국은 해결했다 !
사실 나도 완벽히 이해를 못했지만 일단 되는 것에 의의를 두고자 한다.
var Array = arr.reduce(function(acc, current) {
if (acc.findIndex(({ id }) => id === current.id) === -1) {
acc.push(current);
}
return acc;
}, []);
reduce
를 사용해서 해결했다.findIndex(판별 함수를 만족하는 첫 식별자 반환)
으로 중복을 제거해준 다음 Array.forEach (function (data, index) {
var option = 셀렉트 박스 option값 추가.
셀렉트박스.append(option);
셀렉트박스.selectric('refresh');
});
중복이 제거된 상태로 나온 데이터를 이용해서 셀렉트박스의 옵션값을 추가해준다.
이번에 처음 사용해본 셀렉트박스를 꾸며주는 플러그인이다.
.selectric('refresh');
를 해줘야 바뀐 내용이 적용이 된다는 점이 신기 !