상세 컨텐츠

본문 제목

[JavaScript] 자바스크립트 중복 배열 제거법

Coding/JS

by hwlink 2021. 10. 17. 16:16

본문

1. filter, indexOf 함수사용

let array1 =  [1,2,3,4,5];
let array2 = [3,4,5,6,7];

let result = array1.concat(array2);
//  result is = [1,2,3,4,5,3,4,5,6,7]

Q: 배열을 합쳐주는 concat 사용시 [3,4,5]가 중복으로 출력된다.

A: filter, indexOf 를 사용하여 중복을 제거해준다.

1. filter: filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.(출처: mdn)

구문: arr.filter(callback(element[, index[, array]])[, thisArg])

 

2. indexOf: indexof() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.

구문: arr.indexOf(searchElement[, fromIndex])

 

ex) 함수를 외부에서 선언후 실행

function isBigEnough(value) { 
	return value >= 10; 
}

var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

// filtered 는 [12, 130, 44]

filter 인자에서  함수 선언 후 실행

var filtered = [12, 5, 8, 130, 44].filter((value)=> value > 10);

// filtered 는 [12, 130, 44]

 

 

 

중복제거를 위한 filter, indexOf 사용

let array1 =  [1,2,3,4,5];
let array2 =  [3,4,5,6,7];

let result = array1.concat(array2);
//  result is = [1,2,3,4,5,3,4,5,6,7]

let 중복제거값 = result.filter((el,index)=> result.indexOf(el) === index )
//filter 함수로 검사할 요소

console.log(중복제거값) // is [1,2,3,4,5,6,7]

 

2. Set 사용 (ES6)

var arr = [ 'hwang' , 'chaile', 'john', 'hwang' ];

var arrToSet = new Set(arr); //Array를 Set으로 바꿔준다.

arr = [...arrToSet]  //Set을 Array로 바꾸기

//output: [ 'hwang' , 'chaile', 'john' ];

관련글 더보기