如何在 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;
您可以使用 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)
要填充 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;
您可以使用 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)