如何在 javascript 中的数组列表中获取数组中的值

How to get a value in an array that's in a list of arrays in javascript

本文关键字:数组 获取 列表 javascript      更新时间:2023-09-26

要填充HTML选择字段,我有以下数据:

let options = [
 {'label': '--Choose--', 'value':''},
 {'label': 'Linux', 'value':'linux'},
 {'label': 'OSX', 'value':'mac'},
 {'label': 'Windows 98', 'value':'win9x'},
 {'label': 'Windows XP', 'value':'winxp'}
]

现在有了值"mac",我想得到标签"OSX"。

是否可以在 JSX 中以优雅的方式根据此数组的值获取标签?

例如,"mac"应该给出"OSX"

我有ES6/ReactJS/Underscore/jQuery可用。

使用 filter 返回过滤后的数组,获取第一个元素(这是一个对象),然后获取 label 的值。

var label = options.filter(el => el.value === 'mac')[0].label;

演示

您可以使用

Array.prototype.find():

let option = options.find(el => el.value === 'mac');
let label = option ? option.label : undefined;

感谢您的快速回复,我使它对于我自己的用例更加健壮,其中"mac"和不确定的选项。请注意 == 而不是 ===,因为大多数时候整数与字符串进行比较。

export function getLabelByValue(value, options) {
  if(value !== '' && value !== null && options.length > 0) {
      return options.filter(el => el.value == value)[0].label
  }
  return ''
}
let label = getLabelByValue('mac', options)