w3resource

JavaScript : Create an object composed of the properties the given function returns truthy for

JavaScript fundamental (ES6 Syntax): Exercise-97 with Solution

Write a JavaScript program to create an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key).

  • Use Object.keys(obj) and Array.prototype.filter()to remove the keys for which fn returns a falsy value.
  • Use Array.prototype.reduce() to convert the filtered keys back to an object with the corresponding key-value pairs.
  • The callback function is invoked with two arguments: (value, key).

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
const pickBy = (obj, fn) =>
  Object.keys(obj)
    .filter(k => fn(obj[k], k))
    .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
console.log(pickBy({ a: 1, b: '2', c: 3 }, x => typeof x === 'number'));

Sample Output:

{"a":1,"c":3}

Flowchart:

flowchart: Create an object composed of the properties the given function returns truthy for

Live Demo:

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


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to pick the key-value pairs corresponding to the given keys from an object.
Next: Write a JavaScript program to filter an array of objects based on a condition while also filtering out unspecified keys.

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.