자바스크립트(JavaScript)에서 한 배열을 다른 배열에 포함된 값들을 기준으로 걸러내고 싶다면 filter() 메서드를 활용하면 됩니다.
예제 데이터 살펴보기
먼저, 첫 번째 배열의 요소가 다음과 같다고 가정해 보겠습니다.
[100, 110, 150, 180, 190, 175]
그리고 두 번째 배열의 요소는 다음과 같습니다.
[100, 150, 175]
여기서 목표는 첫 번째 배열 중 두 번째 배열에 포함되지 않은 요소들만 남기는 것입니다. 이를 위해 filter()> 메서드와 thisArg 매개변수를 함께 사용합니다.
코드 예제
아래 코드를 확인해 보세요.
var result = [100,110,150,180,190,175].filter(
function(obj) {
return this.indexOf(obj) < 0;
},
[100,150,175]
);
console.log("필터링 후 결과 =");
console.log(result);코드 설명
filter() 메서드의 두 번째 인자로 [100, 150, 175] 배열을 전달하면, 콜백 함수 내부에서 this가 해당 배열을 참조하게 됩니다. 따라서 콜백 함수는 각 요소가 두 번째 배열에 존재하지 않는 경우(this.indexOf(obj) < 0)에만 true를 반환하여 해당 요소를 결과 배열에 유지합니다.
프로그램 실행 방법
위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo269.js라고 가정하겠습니다.
실행 결과
위 프로그램을 실행하면 콘솔에 다음과 같은 출력이 표시됩니다.
PS C:\Users\Amit\javascript-code> node demo269.js 필터링 후 결과 = [ 110, 180, 190 ]
출력 결과에서 볼 수 있듯이, 두 번째 배열([100, 150, 175])에 포함된 값들은 제거되고 나머지 요소인 [110, 180, 190]만 남게 됩니다.