如何使用parseFloat使用对象属性缩短desending顺序?

时间:2015-11-24 11:53:38

标签: javascript sorting

我有以下test code

android:id="@+id/action_bar"

我想通过年度工作对数组进行排序,并在开始时获得最高收入。 似乎无法让它发挥作用......我错过了哪些明显的东西?

4 个答案:

答案 0 :(得分:2)

您只需要撤消订单。 The rules 如下:

  

如果提供compareFunction,则根据比较函数的返回值对数组元素进行排序。如果a和b是要比较的两个元素,那么:

     
      
  • 如果compareFunction(a, b)小于0,则将a排序为低于b的索引,即a先来。
  •   
  • 如果compareFunction(a, b)返回0,则保持a和b相对于彼此保持不变,但相对于所有不同的排序   元素。注意:ECMAscript标准不保证这一点   行为,因而并非所有浏览器(例如Mozilla版本约会   回到至少2003年)尊重这一点。
  •   
  • 如果compareFunction(a, b)大于0,则将b排序为低于a的索引。
  •   当给定一对特定元素a和b作为其两个参数时,
  • compareFunction(a, b)必须始终返回相同的值。如果   返回不一致的结果,然后排序顺序未定义。
  •   

基本上是这样的:

arr.sort(function(a, b) {
  return parseFloat(b.EmployeeInfo[0].annualWage) - parseFloat(a.EmployeeInfo[0].annualWage);
});

答案 1 :(得分:0)

你正在向后排序并将最低收入者放在开头。

在比较功能中交换ab

return parseFloat(b.EmployeeInfo[0].annualWage) -     parseFloat(a.EmployeeInfo[0].annualWage);

答案 2 :(得分:0)

你去, 交换a和b,不需要浮动

arr.sort(function(a, b) {

  return parseInt(b.EmployeeInfo[0].annualWage) - parseInt(a.EmployeeInfo[0].annualWage);
});

答案 3 :(得分:-1)

这是我的解决方案如何进行排序:

a.sort(function (x, y) { return ((x > y) - (y > x)) * d; });

其中d == 1为升序排序,d==-1为降序