过滤地图并返回ID数组

Wol*_*359 0 javascript lodash

我有这个结构:

var entities = {
  1: {'name': 'Fred', 'age': 35},
  2: {'name': 'Hans', 'age': 47},
  3: {'name': 'Bert', 'age': 27}
}
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

var ids = entities.filter( p => p.age > 30);
Run Code Online (Sandbox Code Playgroud)

哪个应该返回一个数组:

[1, 2]
Run Code Online (Sandbox Code Playgroud)

有没有方便的方法来做到这一点?例如Lodash等?

Kar*_*rim 5

你可以Object.keys结合使用Array.prototype.filter

var entities = {
  1: {'name': 'Fred', 'age': 35},
  2: {'name': 'Hans', 'age': 47},
  3: {'name': 'Bert', 'age': 27}
}
const result = Object.keys(entities).filter(key =>  entities[key].age > 30);
console.log(result);
Run Code Online (Sandbox Code Playgroud)