✅ 상황

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란 ?

이번에 처음 사용해본 셀렉트박스를 꾸며주는 플러그인이다.
.selectric('refresh');를 해줘야 바뀐 내용이 적용이 된다는 점이 신기 !

profile
조금씩 성장하는 개발자.

0개의 댓글