Javascript 如何按字母顺序对下拉菜单项进行排序?
在的下拉菜单中是否有按字母顺序显示选项的方法 我知道数组可以简单地使用arr.sort进行排序。但是,如果我执行constoptions=[…].sort,那么我仍然会在下拉菜单中看到未排序的值Javascript 如何按字母顺序对下拉菜单项进行排序?,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,在的下拉菜单中是否有按字母顺序显示选项的方法 我知道数组可以简单地使用arr.sort进行排序。但是,如果我执行constoptions=[…].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
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>
这里有一个简单的方法来对对象数组进行排序,您可以读取 常量选项=[ {label:B,value:8033.86}, {label:A,value:483.93}, {label:Z,value:1246.3}, {label:C,value:145.0}, {标签:E,值:244.5} ]
console.logoptions.sorta,b=>a.label>b.label?1:-1这里有一个对对象数组排序的简单方法,您可以读取 常量选项=[ {label:B,value:8033.86}, {label:A,value:483.93}, {label:Z,value:1246.3}, {label:C,value:145.0}, {标签:E,值:244.5} ]
console.logoptions.sorta,b=>a.label>b.label?1:-1材质UI是关于样式的,而不是逻辑。 首先,您需要对选项进行排序
for (const item in options) {
console.log(options[item].label)
}
它的第一步。第二,你应该试试自己 材质UI是关于样式,而不是逻辑。 首先,您需要对选项进行排序
for (const item in options) {
console.log(options[item].label)
}
它的第一步。第二,你应该试试自己 在处理一系列对象时,您需要知道是什么决定了哪一个首先出现:
function sortAlphabeticallyAscending(a,b){
if(a.label < b.label) return -1;
else if (a.label > b.label) return 1;
else return 0;
}
options.sort(sortAlphabeticallyAscending);
基本上,如果你想说a的指数低于b,返回-1,即a排在第一位,如果你想说b排在第一位,返回1,如果你不想改变顺序,返回0
请参阅文档中的部分…当您处理一组对象时,您需要说明是什么决定了哪一个首先出现:
function sortAlphabeticallyAscending(a,b){
if(a.label < b.label) return -1;
else if (a.label > b.label) return 1;
else return 0;
}
options.sort(sortAlphabeticallyAscending);
基本上,如果你想说a的指数低于b,返回-1,即a排在第一位,如果你想说b排在第一位,返回1,如果你不想改变顺序,返回0
请参阅文档中的部分…您必须定义排序逻辑,因为您的输入数组是一个对象数组 可以找到更多信息 常量选项=[ {label:B,value:8033.86}, {label:A,value:483.93}, {label:Z,value:1246.3}, {label:C,value:145.0}, {标签:E,值:244.5} ]; const objComparator=函数,b{ 如果a.标签
options.sortobjComparator 您必须定义排序逻辑,因为您的输入数组是一个对象数组 可以找到更多信息 常量选项=[ {label:B,value:8033.86}, {label:A,value:483.93}, {label:Z,value:1246.3}, {label:C,value:145.0}, {标签:E,值:244.5} ]; const objComparator=函数,b{ 如果a.标签