JavaScripti massiivi filter () tagastab uue massiivi kõigi elementidega, mis läbivad antud funktsiooniga määratud testi.
Meetodi süntaks filter()
on:
arr.filter(callback(element), thisArg)
Siin on arr massiiv.
filter () Parameetrid
filter()
Meetod võtab:
- tagasihelistamine - testi funktsioon iga massiivi elemendi jaoks; naaseb,
true
kui element läbib testi, muidufalse
. See võtab sisse:- element - praegune element edastatakse massiivist.
- thisArg (valikuline) - väärtus, mida kasutatakse
this
tagasihelistamisel. Vaikimisi onundefined
.
Tagastusväärtus filtrist ()
- Tagastab uue massiivi ainult testi läbinud elementidega.
Märkused :
filter()
ei muuda algset massiivi.filter()
ei käivitacallback
väärtusteta massiivi elementide puhul.
Näide 1: Väärtuste filtreerimine massiivist
const prices = (1800, 2000, null, 3000, 5000, "Thousand", 500, 8000) function checkPrice(element) ( return element> 2000 && !Number.isNaN(element); ) let filteredPrices = prices.filter(checkPrice); console.log(filteredPrices); // ( 3000, 5000, 8000 ) // using arrow function let newPrices = prices.filter((price) => (price> 2000 && !Number.isNaN(price))); console.log(newPrices); // ( 3000, 5000, 8000 )
Väljund
(3000, 5000, 8000) (3000, 5000, 8000)
Siin filtreeritakse välja kõik arvud, mis on väiksemad või võrdsed 2000 ja kõik mittearvulised väärtused.
Näide 2: Otsing massiivist
const languages = ("JavaScript", "Python", "Ruby", "C", "C++", "Swift", "PHP", "Java"); function searchFor(arr, query) ( function condition(element) ( return element.toLowerCase().indexOf(query.toLowerCase()) !== -1; ) return arr.filter(condition); ) let newArr = searchFor(languages, "ja"); console.log(newArr); // ( 'JavaScript', 'Java' ) // using arrow function const searchArr = (arr, query) => arr.filter(element => element.toLowerCase().indexOf(query.toLowerCase()) !== -1); let newLanguages = searchArr(languages, "p"); console.log(newLanguages); // ( 'JavaScript', 'Python', 'PHP' )
Väljund
('JavaScript', 'Java') ('JavaScript', 'Python', 'PHP')
Siin teisendatakse nii element kui ka päring väiketähtedeks ning meetodit indexOf () kasutatakse selleks, et kontrollida, kas päringus elementi sees on. Need elemendid, mis seda testi ei läbi, filtreeritakse välja.
Soovitatav lugemine: JavaScripti massiivi kaart ()