如何在';javascript中数组列表中的
要填充HTML选择字段,我有以下数据:如何在';javascript中数组列表中的,javascript,arrays,reactjs,ecmascript-6,javascript-objects,Javascript,Arrays,Reactjs,Ecmascript 6,Javascript Objects,要填充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”值,我想得到
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中,是否有可能以优雅的方式基于该数组的值获取标签
e、 g.“mac”应给出“OSX”
我有ES6/ReactJS/Underline/jQuery可用。用于返回过滤数组,获取第一个元素(它是一个对象),然后获取标签的值
var label = options.filter(el => el.value === 'mac')[0].label;
您可以使用:
感谢您的快速回复,我让它对我自己的用例更加健壮,因为“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)
到目前为止你试过什么?我们很乐意为您提供帮助,但我们不只是为您编写代码。使用filter
查找value=='mac'
中的项目,然后map
返回标签的值
键。比我快15秒:D
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)