我有以下test code
android:id="@+id/action_bar"
我想通过年度工作对数组进行排序,并在开始时获得最高收入。 似乎无法让它发挥作用......我错过了哪些明显的东西?
答案 0 :(得分:2)
您只需要撤消订单。 The rules 如下:
如果提供
compareFunction
,则根据比较函数的返回值对数组元素进行排序。如果a和b是要比较的两个元素,那么:
- 如果
compareFunction(a, b)
小于0,则将a排序为低于b的索引,即a先来。- 如果
compareFunction(a, b)
返回0,则保持a和b相对于彼此保持不变,但相对于所有不同的排序 元素。注意:ECMAscript标准不保证这一点 行为,因而并非所有浏览器(例如Mozilla版本约会 回到至少2003年)尊重这一点。- 如果
当给定一对特定元素a和b作为其两个参数时,compareFunction(a, b)
大于0,则将b排序为低于a的索引。compareFunction(a, b)
必须始终返回相同的值。如果 返回不一致的结果,然后排序顺序未定义。
基本上是这样的:
arr.sort(function(a, b) {
return parseFloat(b.EmployeeInfo[0].annualWage) - parseFloat(a.EmployeeInfo[0].annualWage);
});
答案 1 :(得分:0)
你正在向后排序并将最低收入者放在开头。
在比较功能中交换a
和b
。
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
为降序