Метод filter

Методът filter позволява филтриране на елементи от масив, оставяйки само тези, които отговарят на определено условие. Методът получава като параметър функция, която ще се изпълни за всеки елемент от масива. Като резултат методът връща нов масив, който ще съдържа само тези елементи, за които подадената функция върне true.

Във функцията могат да се подават три параметъра. Ако тези параметри съществуват (не са задължителни), тогава в първия автоматично ще попадне елементът от масива, във втория ще попадне неговият номер в масива (индекс), а в третия - самият масив.

Синтаксис

javascriptlet нов масив = масив.filter(function(елемент, индекс, масив) {
  код
  return true или false
});

Пример

Нека филтрираме масив, оставяйки в него само положителни числа:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(function(elem) {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Резултат от изпълнението на кода:

javascript[5, 1, 1, 3, 4]

Пример

Да съкратим кода, като използваме стрелкова функция:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Резултат от изпълнението на кода:

javascript[5, 1, 1, 3, 4]

Пример

Да съкратим кода, като използваме съкращение на логически операции:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  return elem >= 0;
});

console.log(res);

Резултат от изпълнението на кода:

javascript[5, 1, 1, 3, 4]

Пример

Да съкратим кода, като използваме особеностите на стрелковите функции:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);

console.log(res);

Резултат от изпълнението на кода:

javascript[5, 1, 1, 3, 4]

Пример

При необходимост в третия параметър може да се подаде самият масив:

javascriptlet res = arr.filter(function(elem, index, arr) {
  тук ще бъде достъпен масивът arr
});

Вижте също

  • методите map и forEach,
    които позволяват прилагане на функция към всеки елемент от масива
  • методите some и every,
    извършващи проверка на масива
  • методите reduce и reduceRight,
    свиващи масив към една стойност