본문 바로가기
frontend/JavaScript

[JavaScript] 숫자/문자열 배열 중복 제거 set, map, reduce, filter

by 신림쥐 2023. 12. 30.
728x90
반응형

 

     


    Set

    const values = [3, 1, 3, 5, 2, 4, 4, 4];
    
    const uniqueValues = [...new Set(values)]; // [3, 1, 5, 2, 4]

     

    map

    const list = [3, 1, 3, 5, 2, 4, 4, 4]; 
    
    const result = [...new Map(list.map(item => [item, item])).values()];
    console.log(result); // [3, 1, 5, 2, 4]

     

    reduce

    const list = [3, 1, 3, 5, 2, 4, 4, 4];
    
    const result = list.reduce((accumulator, currentValue) => {
      if (!accumulator.includes(currentValue)) {
        accumulator.push(currentValue);
      }
      return accumulator;
    }, []);
    console.log(result); // [3, 1, 5, 2, 4]

     

    filter

    const list = [3, 1, 3, 5, 2, 4, 4, 4]; 
    
    const result = list.filter((value, index, self) => self.indexOf(value) === index);
    console.log(result); // [3, 1, 5, 2, 4]

     

     

    마무리

    • filter는 코드가 간결하고 Set, reduce이 성능상 효율이 높다. 
    728x90
    반응형