30秒学会 JavaScript 片段 · 2017年7月29日

30秒学会 JavaScript 片段 – findKey

Returns the first key that satisfies the provided testing function. Otherwise undefined is returned.

Use Object.keys(obj) to get all the properties of the object, 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.

代码片段

const findKey = (obj, fn) => Object.keys(obj).find(key => fn(obj[key], key, obj));

使用样例

findKey(
  {
    barney: { age: 36, active: true },
    fred: { age: 40, active: false },
    pebbles: { age: 1, active: true }
  },
  o => o['active']
); // 'barney'