-
[배열 Array] - filter()NODE/자바스크립트 문법 2023. 7. 26. 12:33
filter() 매서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
filter()는 배열 내 각 요소에 대해 한번 제공된 callback함수를 호출해, callback이 true로 강제하는 값을 반환하는 모든 값이 있는 새로운 배열을 생성한다. callback은 할당된 값이 있는 배열의 인덱스에 대해서만 호출된다. 삭제됐거나 값이 할당된 적이 없는 인덱스에 대해서는 호출되지 않는다. callback 테스트를 통과하지 못한 배열 요소는 그냥 건너뛰며 새로운 배열에 포함되지 않는다.
배열의 길이를 filter로 걸러보기.
const words = ["spray", "limit", "elite", "beautiful", "destruction", "present"] const result = words.filter(word => word.length > 6); console.log(result); ["beautiful", "destruction", "present"]
const fruits= ['사과', '귤', '배', '감', '바나나', '키위']; const result = fruits.filter(fruit => fruit.length > 2); //함수가 적용된 결과로 새로운 배열을 반환합니다. console.log(result); //['바나나']
숫자열 10이하인 값 걸러내기
function isBigenough(value) { return value >=10; } let array = [12, 5, 8, 130, 44].filter(isBigenough); console.log(array) => [12, 130, 44]
배열 내용검색하기.
const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange']; function filterItems(query) { return fruits.filter(function elements) { return elements.toLowerCase().indexOf(query.toLowerCase()) > -1; }) } console.log(filterItems('ap')); // ['apple', 'grapes']; // ap를 포함하는 문자열 console.log(filterItems('an')); // ['banana', 'mango', 'orange']; // an을 포함하는 문자열
Json에서 무효한 항목 거르기
const arr = [ //배열에 아이디가 여러가지 타입이 있음 {id: 15}, {id: -1}, {id: 0}, {id: 3}, {id: 12.2}, { }, {id: null}, {id: NaN}, {id: undefined} ]; let isValidEntries = 0; function isNumber(obj) { return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj); } // 객체는 undefined또는 NaN이어서는안되고, 오로지 typeof(형태)가 number, 숫자열이어야한다. function filterByID(item) { if (isNumber(item.id) && item.id !== 0) { return true; } invalidEntries++; return false; } var arrByID = arr.filter(filterByID); console.log('Filtered Array\n', arrByID); // Filtered Array // [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }] console.log('Number of Invalid Entries = ', invalidEntries); // Number of Invalid Entries = 5