当前位置: 首页 > 知识库问答 >
问题:

从数组中的所有对象获取特定键的值[重复]

全冥夜
2023-03-14

我在开快车。html" target="_blank">js应用程序,有几个API将数据提供给下拉框。返回的数据格式为:

  [
    {
        key: 'blah',
        value: 'Blah Blah'
    },
    {
        key: 'foo',
        value: 'Foos'
    },
    {
        key: 'bar',
        value: 'Bars'
    },
    {
        key: 'baz',
        value: 'Bazingo'
    }
];

其中key是我的选项key,value是显示文本。这个数组的结构是固定的,我知道一个事实,我总是将key和value作为数组中每个对象的字段。

当我尝试验证提交的表单(额外的服务器端验证)时,我想交叉引用为字段提供的值与数组中“key”的所有值(blah、foo、bar、baz)。鉴于这将是一个经常使用的路由,我想避免每次都迭代数组以找到允许的值。有更简单的方法吗?换句话说,我知道我可以使用:

 permittedValues = [];
 for (i = 0; i < array.length; i++){
    permittedValues[i] = array[i]["key"];
 }

但如果可能的话,我想避免这种循环。

附言:这似乎是一个基本问题,我在网上找到的答案并没有完全回答我的问题。所以,如果已经问过并回答过,请道歉。

共有3个答案

颜畅
2023-03-14

纯Javascript ES6

array.map(value => value.key);

下划线/Lodash

_.map(value,'key')
毛博
2023-03-14

使用木瓜,

自lodash 4以来。x表示\u。为支持映射功能,已删除Pull功能

因此,您可以通过以下方式完成所需的任务:

import _ from 'lodash'
_.map(items, 'key');

罗达斯怎么了。拔

严项明
2023-03-14

您可以映射:

permittedValues = array.map(function(value) {
  return value.key;
});

在ES6/ES2015中,箭头函数更漂亮:

permittedValues = array.map(value => value.key);

它可能更漂亮,但它可能不会比for()循环快。

 类似资料:
  • 如果我有一个数组如下所示: 如何按cuisinetype对此进行排序? 提前感谢您的帮助!我尝试过其他建议,但没有太大的成功!

  • 我有一个数据就像 我想使用ES6高阶函数获得每个对象的名称,而不使用for或foreach。 我尝试过和但不知道何时使用什么

  • 我已经为从下图中的对象中提取所有标签而苦苦挣扎了相当长的时间,然后使用JavaScript将它们存储在单个数组中... 我一直在尝试这样的事情: 但这只打印了三个不同的值...我需要一个数组中的所有标签。 理想的结果是:

  • 我正在学习ES6和对象,想知道如何在这个对象数组中去掉一个键值对: 结果应该是: 我创建了一个foreach函数,并试图将每个结果推入一个新的数组,但现在没有对象。 这怎么能解决呢?或者有更好的方法来使用ES6/ES7语法?感谢任何帮助。代码和codePen URL如下: 代码笔:https://codepen.io/anon/pen/bPYQyb

  • 问题内容: 我有以下JSON数组,我想创建对象表单状态键计数 要计算状态键值并创建以下对象 问题答案: 使用 方法 虽然可以使用 具有相同代码的方法。

  • 我得到了响应从REST API到响应对象后,通过RestAsared API调用。 响应主体是json,我想从中获取特定的键值吗? 以下是代码 如何在字符串中获取特定的键值?