sort()
直接使用sort对数组排序
// 坑
[11,20,1,3,5,30].sort(); // [1, 11, 20, 3, 30, 5]
Array
的sort()
方法默认把所有元素先转换为 String 再排序,结果'10'
排在了'2'
的前面,因为字符'1'
比字符'2'
的ASCII码小。
还好,sort()
方法也是一个高阶函数,可以接收一个比较函数来实现自定义的排序。
由小到大排序:
var arr=[11,20,1,3,5,30];
arr.sort((x,y)=>{
if(x<y) return -1;
if(x>y) return 1;
return 0;
});
由大到小排序:
var arr=[11,20,1,3,5,30];
arr.sort((x,y)=>{
if(x<y) return 1;
if(x>y) return -1;
return 0;
});
字符串忽略大小写排序
var arr=['pear','apple','Banana','Orange']
arr.sort((s1,s2)=>{
x=s1.toUpperCase(); // 忽略大小写就是把字符串统一变成大写或小写
y=s2.toUpperCase();
if(x<y) return -1;
if(x>y) return 1;
return 0;
});
sort()
方法会修改原数组,返回的结果也就是原数组。
网友评论