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