w3resource

JavaScript: Takes a predicate and array, like Array.filter(), but only keeps x if pred(x) returns false

JavaScript: Exercise-155 with Solution

Write a JavaScript program that takes a predicate and an array, like Array.filter(), but only keeps x if pred(x) returns false.

Filters an array's values based on a predicate function, returning only values for which the predicate function returns false.

  • Use Array.prototype.filter() in combination with the predicate function, pred, to return only the values for which it returns false.

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
// Define a function 'reject' that filters elements from an array based on a provided predicate function
const reject = (pred, array) => 
  // Filter the array using the negation of the predicate function
  array.filter((...args) => !pred(...args));

// Test the 'reject' function with a predicate function and an array
console.log(reject(x => x % 2 === 0, [1, 2, 3, 4, 5])); // Output: [1, 3, 5]
console.log(reject(word => word.length > 4, ['Apple', 'Pear', 'Kiwi', 'Banana'])); // Output: ['Pear', 'Kiwi']

Output:

[1,3,5]
["Pear","Kiwi"]

Visual Presentation:

JavaScript Fundamental: Takes a predicate and array, like Array.filter(), but only keeps x if pred(x) returns false.

Flowchart:

flowchart: Takes a predicate and array, like Array.filter(), but only keeps x if pred(x) returns false

Live Demo:

See the Pen javascript-basic-exercise-155-1 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to create an object composed of the properties the given function returns falsey for. The function is invoked with two arguments: (value, key).
Next: Write a JavaScript program to apply a function against an accumulator and each element in the array (from left to right), returning an array of successively reduced values.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.