Javascript 在select Reactjs中排序对象键

Javascript 在select Reactjs中排序对象键,javascript,reactjs,Javascript,Reactjs,我在reactjs中对对象键进行排序时遇到问题。 我将从我的数据库中创建一个类似以下内容的select from对象: { liv_1:value, liv_2:value, liv_3:value, . . . liv_10:value, liv_11:value } 因此,我的组件中有: var selectLevel = <select ref="level"> <option value="

我在reactjs中对对象键进行排序时遇到问题。 我将从我的数据库中创建一个类似以下内容的select from对象:

{
  liv_1:value,
  liv_2:value,
  liv_3:value,
  .
  . 
  .
  liv_10:value,
  liv_11:value 
}
因此,我的组件中有:

var selectLevel = 
        <select ref="level">
            <option value="" disabled>--Select level--</option>
            {
                Object.keys(objectLevel).map(function(el, k) {
                    return <option key={k}
                    value={el}>{el}</option>;
                })
            }
        </select>

如何维护订单?

在映射之前添加调用
sort

 Object.keys(objectLevel).sort().map(function(el, k) {
                    return (<option key={k}
                    value={el}>{el}</option>);
                })
Object.keys(objectLevel).sort().map(函数(el,k){
返回({el});
})

您可以使用如下自定义比较器对项目进行重新排序:

Object.keys(objectLevel)
  .sort((a,b) => +a.split('_')[1] - +b.split('_')[1])
  .map(function(el, k) {
      return <option key={k} value={el}>{el}</option>;
  })
Object.keys(objectLevel)
.sort((a,b)=>+a.split(“')[1]-+b.split(“')[1])
.map(函数(el,k){
返回{el};
})

您好,谢谢,但它不起作用,我相信问题在于从后端返回的对象顺便说一句,您的代码可以更优雅:
object.keys(objectLevel.sort().map((el,k)=>{el})
@LorenzoBerti:用
()
包装返回的elment。。我根据我尝试的结果更新了答案,不起作用,但问题是如果我有来自后端的字符串之类的键,它会自动重新排序,我不知道为什么!:(尝试检查服务器的响应,项目的顺序是什么?使用检查元素的顺序是错误的,但在后端,我按正确的顺序发送数据。
Object.keys(objectLevel)
  .sort((a,b) => +a.split('_')[1] - +b.split('_')[1])
  .map(function(el, k) {
      return <option key={k} value={el}>{el}</option>;
  })