var list1 = [1, 3, 2, 5, 8]; console.log(list1.sort()); // [1, 2, 3, 5, 8] // 得到不期望的排序结果 var list2 = [3, 23, 15, 9, 31]; console.log(list2.sort()); // [15, 23, 3, 31, 9]
sort:
- 默认升序
- 按照字符串Unicode码进行排序
解决
定义一个比较器函数
function compare(x, y) { return x - y; } var list1 = [1, 3, 2, 5, 8]; console.log(list1.sort(compare)); // [1, 2, 3, 5, 8] // 得到期望的排序结果 var list2 = [3, 23, 15, 9, 31]; console.log(list2.sort(compare)); // [3, 9, 15, 23, 31]