Javascript 按升序排序

Javascript 按升序排序,javascript,ecmascript-6,Javascript,Ecmascript 6,由于不熟悉ES6和JavaScript,当我需要按特定键对对象数组进行排序时,我会: objectArray.sort(x=> x.orderKey).reverse(); 就性能而言,由于reverse方法在另一个循环中运行原始数组,或者它可能会创建一些额外的临时变量(但是,我不确定其机制),因此我认为这不是正确的解决方案。是否有允许指定降序或升序的内置功能 的工作方式不同 您需要指定两个给定元素的顺序,并根据项目的顺序返回小于零、零或大于零的值 如果orderKey是一个数值,则可以

由于不熟悉ES6和JavaScript,当我需要按特定键对对象数组进行排序时,我会:

objectArray.sort(x=> x.orderKey).reverse();
就性能而言,由于
reverse
方法在另一个循环中运行原始数组,或者它可能会创建一些额外的临时变量(但是,我不确定其机制),因此我认为这不是正确的解决方案。是否有允许指定降序或升序的内置功能

的工作方式不同

您需要指定两个给定元素的顺序,并根据项目的顺序返回小于零、零或大于零的值

如果
orderKey
是一个数值,则可以返回的增量应该是

objectArray.sort((a, b) => a.orderKey - b.orderKey)
对于相反顺序,可以交换计算操作数

对于字符串值,可以使用比较

objectArray.sort((a, b) => (a, b) => a.orderKey > b.orderKey || -(a.orderKey < b.orderKey))

Array#sort()
需要比较两个参数。所显示的内容没有多大意义。请提供一个@charlietfl:使用一个参数,我可以按降序排序。我不明白,如果我想根据字符串值排序,那么
string-string
是否有效?@dv,不用问,或者?这不是一个好的解决方案,在这种情况下,我宁愿编写自己的函数以更有效的方式进行排序。我还没有测试过这个,但看起来很慢。@Arrrr这些话没有多大意义,你肯定不会让它比这个解决方案更短(或更快)。我实际上是在把压力从服务器转移到客户端,所以我支持最快的功能,而不是那些只起作用的功能
objectArray.sort((a, b) => a.orderKey.localeCompare(b.orderKey))