본문 바로가기
Javascript

javascript 배열 요소 중복 제거하기

by @hohoya33 2021년 04월 18일

Set()

자바스크립트에서 Set 객체를 이용하면 간단하게 중복없는 데이터를 표현할 수 있습니다. 중복값이 있는 배열을 Set 객체로 만들어서 중복을 제거한 후, Spread Operator(전개연산자)를 사용하여 Set 객체를 다시 배열로 변환합니다.

let arr = [3, 1, 3, 5, 2, 4, 4, 4];
let uniqueValues = [...new Set(arr)];

console.log(uniqueValues); // [3, 1, 5, 2, 4]

 

reduce()

Array.includes(value) : value가 Array배열에 존재하는지 판단해 true, false를 반환합니다.

let arr = [3, 1, 3, 5, 2, 4, 4, 4];
arr.reduce((acc,curr) => acc.includes(curr) ? acc : [...acc,curr],[]); 
// [2, 1, 5, 6, 3]

spread operator가 지원이 안될때

// reduce, indexOf
arr.reduce(function(acc,curr,index){
  acc.indexOf(curr) > -1 ? acc : acc.push(curr);
  return acc;
},[]); // [2, 1, 5, 6, 3]

// filter, indexOf
arr.filter(function(a, i, self){
  return self.indexOf(a) === i;
}); // [2, 1, 5, 6, 3]

개의 댓글