JavaScript masīva filtra () metode atgriež jaunu masīvu ar visiem elementiem, kas iztur testu, kuru nosaka dotā funkcija.
Metodes sintakse filter()
ir šāda:
arr.filter(callback(element), thisArg)
Lūk, arr ir masīvs.
filtrs () Parametri
filter()
Metode ņem in:
- atzvanīšana - testa funkcija, kas jāizpilda katram masīva elementam; atgriežas,
true
ja elements iztur pārbaudi, citsfalse
. Tas aizņem:- elements - pašreizējais elements, kas tiek nodots no masīva.
- thisArg (pēc izvēles) - vērtība, kas jāizmanto kā
this
, veicot atzvanīšanu. Pēc noklusējuma tā irundefined
.
Atgriezeniskā vērtība no filtra ()
- Atgriež jaunu masīvu ar tikai tiem elementiem, kas izturējuši pārbaudi.
Piezīmes :
filter()
nemaina sākotnējo masīvu.filter()
neizpildacallback
masīva elementiem bez vērtībām.
1. piemērs: masīva vērtību filtrēšana
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 )
Rezultāts
(3000, 5000, 8000) (3000, 5000, 8000)
Šeit tiek izfiltrēti visi skaitļi, kuru vērtība ir mazāka vai vienāda ar 2000 , un visas skaitliskās vērtības.
2. piemērs: meklēšana masīvā
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' )
Rezultāts
('JavaScript', 'Java') ('JavaScript', 'Python', 'PHP')
Šeit gan elements, gan vaicājums tiek pārvērsti par mazajiem burtiem, un metodi indexOf () izmanto, lai pārbaudītu, vai vaicājums atrodas elementa iekšpusē. Tie elementi, kas neiztur šo pārbaudi, tiek filtrēti.
Ieteicamā literatūra: JavaScript masīva karte ()