Metoden JavaScript Array filter () returnerar en ny matris med alla element som klarar testet definierat av den givna funktionen.
Syntaxen för filter()
metoden är:
arr.filter(callback(element), thisArg)
Här är arr en matris.
filter () Parametrar
Den filter()
metod tar in:
- återuppringning - Testfunktionen som ska köras på varje matriselement; returnerar
true
om elementet klarar testet, annarsfalse
. Det tar in:- element - Det aktuella elementet som skickas från matrisen.
- thisArg (valfritt) - Värdet som ska användas som
this
vid återuppringning. Som standard är detundefined
.
Returvärde från filter ()
- Returnerar en ny matris med endast de element som klarade testet.
Anmärkningar :
filter()
ändrar inte den ursprungliga matrisen.filter()
körs intecallback
för arrayelement utan värden.
Exempel 1: Filtrera värden från Array
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 )
Produktion
(3000, 5000, 8000) (3000, 5000, 8000)
Här filtreras alla siffror som är mindre än eller lika med 2000 och alla icke-numeriska värden.
Exempel 2: Söker i Array
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' )
Produktion
('JavaScript', 'Java') ('JavaScript', 'Python', 'PHP')
Här omvandlas både element och fråga till gemener och metoden indexOf () används för att kontrollera om frågan finns i elementet. De element som inte klarar detta test filtreras bort.
Rekommenderad läsning: JavaScript Array karta ()