Метад filter
Метад filter
дазваляе адфільтраваць
элементы масіва, пакінуўшы толькі адпаведныя
пэўнай умове элементы.
Метад у параметры атрымлівае функцыю, якая
выканаецца для кожнага элемента масіва.
Сваім вынікам метад вяртае новы
масіў, у які ўвойдуць толькі тыя элементы,
для якіх перададзеная функцыя верне true
.
У функцыю можна перадаваць тры параметры. Калі гэтыя параметры ёсць (яны не абавязковыя), то ў першы аўтаматычна трапіць элемент масіва, у другі трапіць яго нумар у масіве (індэкс), а ў трэці - сам масіў.
Сінтаксіс
let новы масіў = масіў.filter(function(элемент, індэкс, масіў) {
код
return true або false
});
Прыклад
Давайце адфільтруем масіў, пакінуўшы ў ім толькі дадатныя лікі:
let 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);
Вынік выканання кода:
[5, 1, 1, 3, 4]
Прыклад
Скарацім код, скарыстаўшыся стрэлачнай функцыяй:
let 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);
Вынік выканання кода:
[5, 1, 1, 3, 4]
Прыклад
Скарацім код, скарыстаўшыся скарачэннем лагічных аперацый:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Вынік выканання кода:
[5, 1, 1, 3, 4]
Прыклад
Скарацім код, скарыстаўшыся асаблівасцямі стрэлачных функцый:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Вынік выканання кода:
[5, 1, 1, 3, 4]
Прыклад
Пры неабходнасці ў трэці параметр можна перадаць сам масіў:
let res = arr.filter(function(elem, index, arr) {
тут будзе даступны масіў arr
});