배열 중복 요소 없애기 (Set)

📄 Set

배열을 다룰때 Set함수를 사용하면 중복된 요소를 없애고 값을 한번만 보여줍니다.

Set은 객체로 다루어지지만 배열의 타입이 Object이기 때문에 사용할 수 있습니다.

📄 Set 사용하기

var mySet = new Set();

mySet은 중복된 요소가 있으면 하나만 남기고 사라집니다.

mySet.add(1); // Set { 1 }
mySet.add(5); // Set { 1, 5 }
mySet.add(5); // Set { 1, 5 }
mySet.add("some text"); // Set { 1, 5, 'some text' }

5를 두번 추가했지만 한개만 남습니다.

this.setHistoryData = (histData) => {
  const avoidDulpli = [...new Set([histData, ...this.state.historyList])];
  if (avoidDulpli.length > 5) {
    avoidDulpli.pop();
  }
  this.setState({
    ...this.state,
    historyList: avoidDulpli,
  });
};

구현하던 프로젝트에서 검색기록을 내는 코드입니다.

검색한 데이터(histData)를 받아서 새로운 배열 avoidDulpli를 만들고,

new Set을 이용해 중복된 값은 제거되는 새로운 배열을 만들어 받아온 데이터(histData)가 앞에 추가됩니다.

Leave a comment