The task is to filter the array based on the returned value when passed to the given function. The purpose is to loop through the array and execute one function that will return true or false. Then filter out all the values for which the function (comparator function) does not return true.
These are the following methods for filtering the values from an array:
- Using forEach() method
- Using filter() Method
- Using for() loop
Approach:
- Start by defining an array named ‘array’ and assign the values to it.
- Define a comparator function name
compare
that will be used to filter the elements. - Apply different methods to get the filtered values.
Method 1: Using forEach() Method
In order to filter out the array, we will loop through the array and call this function “myFilter“. The value is skipped if it returns true, if the function returns false, then we will store that value in the filteredArr by using “filteredArr.push()” in the filtered array. We use forEach through the array of elements.
Example: In this example, we will filter the negative values from the array using the forEach() method.
Javascript
const arr = [5, 6, 7, 8, 9, 2, 6, 3, -4, 0, -9, -6]; // Filtered array for which function // returned false let filteredArr = []; // Comparator function const myFilter = (element) => { if (element >= 0) { return true ; } else { return false ; } } // Iterate through each element arr.forEach(element => { // Push in the filteredArr if // it returns false if (myFilter(element) === false ) { filteredArr.push(element); } }) console.log( "After filtering:" , filteredArr); |
After filtering: [ -4, -9, -6 ]
Method 2: Using filter() Method
In this method, we will use the filter() method and comparator function. The comparator function gives the true for odd numbers because value%2 gives the zero which is false in the boolean.
Example:
Javascript
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let filteredArr = []; const myFilter = (value) => { return Boolean(value % 2); }; arr.filter((element) => { if (myFilter(element) === false ) { filteredArr.push(element); } }); console.log(filteredArr); |
[ 2, 4, 6, 8, 10 ]
Method 3: Using for() loop
In this method, we will use for() loop for iterating over the array and then use the comparator function for comparing the values.
Example:
Javascript
const arr = [5, 6, 7, 8, 9, 2, 6, 3, -4, 0, -9, -6]; // Filtered array for which function // returned false let filteredArr = []; // Comparator function const myFilter = (element) => { if (element >= 0) { return true ; } else { return false ; } } for (i = 0; i < arr.length; i++) { if (myFilter(arr[i])=== false ) { filteredArr.push(arr[i]); } } console.log(filteredArr); |
[ -4, -9, -6 ]
We have successfully filtered the array for which the function does not return true.