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 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 
const reject = (pred, array) => array.filter((...args) => !pred(...args));

console.log(reject(x => x % 2 === 0, [1, 2, 3, 4, 5]));

console.log(reject(word => word.length > 4, ['Apple', 'Pear', 'Kiwi', 'Banana']));

Sample Output:

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

Pictorial 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.



JavaScript: Tips of the Day

How to check whether a string contains a substring in JavaScript?

ECMAScript 6 introduced String.prototype.includes:

const string = "foo";
const substring = "oo";

console.log(string.includes(substring));

includes doesn't have Internet Explorer support, though. In ECMAScript 5 or older environments, use String.prototype.indexOf, which returns -1 when a substring cannot be found:

var string = "foo";
var substring = "oo";

console.log(string.indexOf(substring) !== -1);

Ref: https://bit.ly/3fFFgZv