Programming/JavaScript
자바스크립트 배열 중복 요소 제거 방법 (reduce, filter, set)
2mukee
2022. 4. 19. 20:40
320x100
320x100
reduce 메소드 사용
let names = ['Mike', 'John', 'Bob', 'Jane', 'Bob', 'John', 'Lee', 'Mason'] ;
let single = names.reduce(( a, b ) => {
if( a.indexOf(b) < 0 ) a.push(b);
return a;
}, []);
console.log( single );
// [ 'Mike', 'John', 'Bob', 'Jane', 'Lee', 'Mason' ]
: names 배열에 대해 reduce 실행
: reduce에서 반환할 초기 값을 빈 배열로 선언
: a (누적 연산하여 반환되는 값), b (처리할 현재 요소)를 선언
: a에 값을 누적하는데 a에 존재하지 않는 값 (indexOf에서 -1이 반환 되는 값)을 a에 누적
filter 메소드 사용
let names2 = ['Mike', 'John', 'Bob', 'Jane', 'Bob', 'John', 'Lee', 'Mason'] ;
let single2 = names2.filter( (item, idx, array) => {
return array.indexOf( item ) === idx;
});
console.log( single2 );
// [ 'Mike', 'John', 'Bob', 'Jane', 'Lee', 'Mason' ]
: names2 배열에 대해 filter 실행
: names의 전체 값을 기준으로 indexOf에서 반환되는 인덱스 값이 현재 인덱스와 같은 경우 누적
new Set() 사용
let names3 = ['Mike', 'John', 'Bob', 'Jane', 'Bob', 'John', 'Lee', 'Mason'] ;
let single3 = [...new Set(names3)];
console.log( single3 ) ;
// [ 'Mike', 'John', 'Bob', 'Jane', 'Lee', 'Mason' ]
: 가장 간단한 방법
: set은 중복 값을 허용하지 않는데, 이것을 스프레더로 원소 값을 되돌리면 끝
Refference
자바스크립트 배열 중복 요소 제거하기
1. reduce 메소드 사용 let names = ['Mike', 'John', 'Bob', 'Jane', 'Bob', 'John', 'Lee', 'Mason'] ; let single = names.reduce(( a, b ) => { if( a.indexOf(b) < 0 ) a.push(b) ; return a ; }, []) ; // <-- 초기값 빈 배열 세팅! console.log( single )
megaton111.cafe24.com
300x250
728x90