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