Filtering elements: `filter()`
Filtering elements: filter()
With the arrays, you have the filter()
method to filter the elements of the array with a specific condition. For example with an array of numbers, you want to retrieve only the element greater than 50.
The filter()
doesnβt change the original array. It returns a new array with the elements that satisfy the condition.
const numbers = [3, 75, 42, 13, 69]const resultNumbers = numbers.filter( number => number >= 50)console.dir(resultNumbers)// output: Array [ 75, 69 ]
If the element is an object you can filter for the attribute of the object. For example, if you have objects like this one:
{ product: 'Desk', price: 200, active: true }
and you have an array of elements, and you want to filter and retrieve the object with a price greater (or equal) than 150:
const elements = [ { product: 'Desk', price: 200, active: true }, { product: 'Chair', price: 100, active: true }, { product: 'Door', price: 300, active: false }, { product: 'Bookcase', price: 150, active: true }, { product: 'Door', price: 100, active: true }]
const resultElements = elements.filter( element => element.price >= 150)console.dir(resultElements)
the result is:
Array [ { product: 'Desk', price: 200, active: true }, { product: 'Door', price: 300, active: false }, { product: 'Bookcase', price: 150, active: true }]
you can create a more complex conditions like:
const resultActiveElements = elements.filter( element => (element.active && element.price >= 150))
where the result is:
Array [ { product: 'Desk', price: 200, active: true }, { product: 'Bookcase', price: 150, active: true }]