Array的sort()方法默认把所有元素先转换为String再按ASCII码从小到大排序。
幸运的是,sort()方法也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。
要按数字大小排序,我们可以这么写:
'use strict'; var arr = [10, 20, 1, 2]; arr.sort(function (x, y) { if (x < y) { return -1; } if (x > y) { return 1; } return 0; }); console.log(arr); // [1, 2, 10, 20]
个人理解:
1 表示交换元素
0 -1不交换,看你想正序还是倒序,自己决定什么时候return 1