JavaScript中的排序:对于比较函数来说,返回布尔值不足够吗?我总是像这样成功地对数组进行排序(当我不想要标准的字典排序时):var arr = […] // some numbers or soarr.sort(function(a, b) {
return a > b;});现在,有人告诉我这是不对的,我需要return a-b相反。是真的吗?如果是的话,为什么?我已经测试了我的比较功能,它是有效的!还有,为什么我的解决方案如此普通什么时候是错的?
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
sort
a
b
如果出现一个负数 以前 b
如果出现一个正数 后 b
如果a和b的相对顺序不重要,则为零。
return a - b
a b ret 1 2 -1 3 2 1 2 2 0
return a > b
a b ret implied 1 2 false 0 3 2 true 1 2 2 false 0
[5, 8, 7, 1, 2, 3, 4, 6, 9, 10, 11, 12, 13].sort(function(a, b) { return a > b;});// [4, 5, 3, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13]
添加回答
举报
0/150
提交
取消