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

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

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

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到return一个过滤后的数组,抓取第一个元素(是一个对象),然后抓取label的值。

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

DEMO

您可以使用 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)