자바스크립트에서 Array.filter()는 배열의 요소들 중에 특정 조건을 만족하는 요소들을 모아서 새로운 배열로 리턴합니다. 예제를 통해 filter()의 사용 방법에 대해서 알아보겠습니다.
1. Array.filter()
다음은 filter()를 사용하는 간단한 예제입니다. 배열 words의 요소 중에 문자열의 길이가 6보다 큰 것들만 찾아서 새로운 배열에 추가하고 리턴합니다.
filter()는 인자로 함수를 받으며, 이 예제에서는 Arrow function으로 함수를 전달하였습니다. 함수에서 word는 요소의 배열이 인자로 전달되며, word.length > 6의 연산에서 True로 판단되는 요소들만 모아서 배열로 리턴합니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);Output:
[ 'exuberant', 'destruction', 'present' ]2. Array.filter()의 Syntax
filter(callback) 처럼 인자로 callback을 받으며, callback 함수는 아래와 같이 3개의 인자를 받습니다.
- element: 배열의 요소
- index: 전달된 요소의 Index
- array: 배열 객체
function callback(element, index, array)아래 예제는 callback 함수를 구현하여 filter()에 전달합니다. callback이 호출 될 때 요소들을 로그로 출력되도록 하여 어떻게 동작하는지 확인할 수 있습니다.
callback 함수에서 true를 리턴하는 요소들만 모아서 새로운 배열로 전달됩니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
function func(element, index, array) {
console.log("element: " + element + ", index: " + index + ", array: " + array);
return element.length > 6;
}
const result = words.filter(func);
console.log(result);Output:
element: spray, index: 0, array: spray,limit,elite,exuberant,destruction,present
element: limit, index: 1, array: spray,limit,elite,exuberant,destruction,present
element: elite, index: 2, array: spray,limit,elite,exuberant,destruction,present
element: exuberant, index: 3, array: spray,limit,elite,exuberant,destruction,present
element: destruction, index: 4, array: spray,limit,elite,exuberant,destruction,present
element: present, index: 5, array: spray,limit,elite,exuberant,destruction,present
[ 'exuberant', 'destruction', 'present' ]3. callback의 인자가 생략된 Array.filter() 예제
callback의 인자 중에 index나 array를 사용하지 않는다면 생략할 수 있습니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
function func(element) {
return element.length > 6;
}
const result = words.filter(func);
console.log(result);다음은 숫자 배열에서 Array.filter()를 사용하는 예제입니다.
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(filtered);Output:
[ 12, 130, 44 ]아래와 같이 filter()에 직접 함수를 입력할 수도 있습니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(function func(element) {
return element.length > 6;
});
console.log(result);4. Arrow function을 사용한 Array.filter() 예제
Arrow function을 사용하면 더 적은 코드로 동일한 내용을 구현할 수 있습니다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);Related Posts
- ESLint warning, Expected '===' and instead saw '==' eqeqeq
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화