根据对象中另一个键的值获取键值

won*_*r95 3 javascript arrays object lodash

我有一个案例,我总是遇到一个问题,我需要基于同一对象中的另一个键值,仅从一个对象数组中获取一个对象键,而不是整个对象。

因此,例如,如果我具有以下对象数组:

myArray = [
  {
    name: Person 1
    type: alpha
  },
  {
    name: Person 2
    type: beta
  },
  {
    name: Person 3
    type: gamma
  },
  {
    name: Person 4
    type: beta
  },
  {
    name: Person 5
    type: gamma
  },
];
Run Code Online (Sandbox Code Playgroud)

因此,如果我只想获取类型为“ beta”的那些对象的名称值,该怎么办?我更喜欢lodash,而且我知道如何使用_.map或_.filter,例如

var newArray = _.map(myArray, function(item) {
  return item.type === 'beta';
});
Run Code Online (Sandbox Code Playgroud)

但是那些返回整个对象。我怀疑通过链接可以得到想要的东西,但是我没有弄清楚如何做到这一点。

谢谢。

S M*_*han 5

您可以使用native来做到这一点Array.prototype.map()。看起来像这样(为简洁起见,使用ES6胖箭头功能):

myArray.filter(item => item.type === 'beta').map(item => item.name)
Run Code Online (Sandbox Code Playgroud)

ES5表格为:

myArray.filter(function(item) {return item.type === 'beta'})
     .map(function(item) {return item.name})
Run Code Online (Sandbox Code Playgroud)