javascript - 如何按字母顺序对下拉菜单项进行排序?
问题描述
有没有办法在Material-UIoptions
的下拉菜单中按字母顺序显示?
我知道数组可以简单地使用arr.sort()
. 但是,如果我这样做const options = [...].sort()
了,那么我仍然会在下拉菜单中看到未排序的值。
const options = [
{label:"B",value:8033.86},
{label:"A",value:483.93},
{label:"Z",value:1246.3},
{label:"C",value:145.0},
{label:"E",value:244.5}
]
<Grid item xs={true}>
<FormControl
className={this.props.styles.formControl}
margin="normal">
<InputLabel shrink htmlFor="distanceTarget-label-placeholder">
Target:
</InputLabel>
<Select
onChange={(event) => this.props.handleChange("distanceTarget", event)}
value={this.props.state.distanceTarget}
input={<Input name="distanceTarget" id="distanceTarget-label-placeholder" />}
displayEmpty="true"
name="distanceTarget"
>
{options && options.length && options.map((option, i) => {
return <MenuItem value={option.value} key={i}>{option.label}</MenuItem>
})}
</Select>
</FormControl>
</Grid>
解决方案
这是对对象数组进行排序的简单方法,您可以阅读文档
const options = [
{label:"B",value:8033.86},
{label:"A",value:483.93},
{label:"Z",value:1246.3},
{label:"C",value:145.0},
{label:"E",value:244.5}
]
console.log(options.sort((a, b) => (a.label > b.label) ? 1 : -1))
推荐阅读
- python - Python程序不记得变量
- html - 如何从输入中删除黑色顶部和左侧轮廓
- javascript - 标识符“aa_bb”不是驼峰式的
- c++ - 将新 subky 添加到 HKEY_LOCAL_MACHINE\Software\Classes 后如何更新 HKEY_CLASSES_ROOT
- xcode - Xcode 版本 9.3 (9E145) 没有部署目标 iOS 11.1 和 11.2
- java - 打乱一个字符串数组,以便字符串必须完全打乱,而不是在 Java 中的原始索引中
- r - R - 使用 rvest 包进行抓取
- javascript - 你将如何统一两个相似的数组声明
- c# - 如何在 C# 中声明一个可为空的数组类型?
- postgresql - 从 AWS Glue 连接到 Postgres Heroku DB,SSL 问题