Javascript & Typescript
[Javascript] filter() method
zubetcha
2021. 11. 12. 01:06
filter() method
- 형태: arr.filter(callback function(element, index, array)
- 원본 배열의 요소 중 주어진 callback 함수의 테스트를 통과하는 모든 요소를 모아서 새로운 배열로 반환
- 원본 배열의 어떠한 요소도 테스트를 통과하지 못 한 경우 빈 배열 반환
- 원본 배열에는 영향을 미치지 않음
- callback function → 각 요소를 시험할 함수로, true를 반환하면 요소를 유지하고, false를 반환하면 버림
- element → 현재 처리할 요소
- index (optional) → 현재 처리할 요소의 인덱스
- array (optioanl) → filter를 호출할 배열
- callback 함수는 할당된 값이 있는 인덱스에서만 호출됨
var arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{ },
{ id: null },
{ id: NaN },
{ id: 'undefined' }
];
var invalidEntries = 0;
function isNumber(obj) {
return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);
}
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