w3resource

JavaScript: Get the last key that satisfies the provided testing function, otherwise undefined is returned

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

Write a JavaScript program to get the last key that satisfies the provided testing function, otherwise undefined is returned.

  • Use Object.keys(obj) to get all the properties of the object.
  • Use Array.prototype.reverse() to reverse the order and Array.prototype.find() to test the provided function for each key-value pair.
  • The callback receives three arguments - the value, the key and the object.

Sample Solution:

JavaScript Code:

//#Source https://bit.ly/2neWfJ2 
const findLastKey = (obj, fn) =>
  Object.keys(obj)
    .reverse()
    .find(key => fn(obj[key], key, obj));

console.log(findLastKey(
  {
    barney: { age: 36, active: true },
    fred: { age: 40, active: false },
    pebbles: { age: 1, active: true }
  },
  o => o['active']
));

Sample Output:

pebbles

Flowchart:

flowchart: Get the last key that satisfies the provided testing function, otherwise undefined is returned.

Live Demo:

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


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to flatten a given array up to the specified depth.
Next: Write a JavaScript program to get the first key that satisfies the provided testing function. Otherwise return undefined.

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