Метад 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,
    якія згортваюць масіў да аднаго значэння