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

标签 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
  },
];

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

var newArray = _.map(myArray, function(item) {
  return item.type === 'beta';
});

但是那些返回整个对象。我怀疑我可以通过链接获得我想要的东西,但我不知道如何做到这一点。

谢谢。

最佳答案

您可以使用 native Array.prototype.map() 执行此操作.它看起来像这样(为简洁起见,使用 ES6 粗箭头函数):

myArray.filter(item => item.type === 'beta').map(item => item.name)

ES5 形式是:

myArray.filter(function(item) {return item.type === 'beta'})
     .map(function(item) {return item.name})

关于javascript - 根据对象中另一个键的值获取键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756724/

相关文章:

php - 根据数组中的另一个 id 仅对多数组中的第一项进行排序(PHP)

java - Java 中列表如何保存对象引用/值?

javascript - 不同浏览器的 document.body.offsetWidth 变化

javascript - 与 JS 或其他解决方案中的 shift() 相反

javascript - 无法加载 firebase(重定向错误)

ruby-on-rails - 按 updated_at 对 ruby​​ 数组排序

javascript - Titanium Javascript - 代码适用于 iPhone,但不适用于 Android?

java - 获取按钮在网格布局上的位置

javascript - 功能对象基础知识。如何超越简单的容器?

JavaScript 错误 : object is not a function in a video poker script