数组排序
先看代码数组从大
到小
排序:
var line = "252 2784 2160 181 6644 2870";
var arr = line.split(' ');
var arrInt = arr.map(function (data) {
return +data;
});
arrInt = arrInt.sort(function (a, b) {
return b - a; // 后面比前面大的时候就要交换, 也就是从 大 ==> 小
})
解析
我们在拿到一串数组的时候很经常要进行拆分, 比如:
var line = "252 2784 2160 181 6644 2870";
先用arr.split(' ')
来拆分成字符串数组
var arr = ["252", "2784", "2160", "181", "6644","2870"];
然后再转为number
类型
// 方式一 forEach没有返回值
arr.forEach(function (data, index, arr) {
arrInt.push(+data);
});
// 方式二
var arrInt = arr.map(function (data) {
return +data;
});
一定要定义一个新的变量不可以
这样arr = arr.sot(...)
转为number类型后就可以排序
如果使用默认
sort()
排序的话它只会比较第一位数字, 例如18
比20
大, 所以要写一个函数进行判断才可以
arrInt = arrInt.sort(function (a, b) {
return b - a; // 后面比前面大的时候就要交换, 也就是从 大 ==> 小
})
字符排序
可以用A.localeCompare(B)
若A大于B则返回大于0的数字, 相等返回0
var arr = [['A','你'], ['好','我'], ['佩','齐']];
arr.sort(function(x, y){
return x[0].localeCompare(y[0]);
});
网友评论