js排序sort()

数组排序

先看代码数组从排序:

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()排序的话它只会比较第一位数字, 例如1820大, 所以要写一个函数进行判断才可以

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]);
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 默认排序 2 指定排序规则 2.1 对数字排序未指定规则时: 2.2 指定规则时: 参考:http://www...
    gis杭州阅读 4,127评论 0 0
  • 第五章******************************************************...
    fastwe阅读 3,978评论 0 0
  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 3,499评论 0 0
  • 昨天把周国平的《内在的从容》看完,大概用了四天的时间,四天看完一本书,虽然不能说是很专心,但几乎也是一字不漏,...
    哆啦A梦的铜锣烧阅读 3,093评论 0 0
  • 小胖子还有13天就10个月了。 最近感觉你的自我意识越来越强烈了,看中的东西想要拿如果要无视你,你会“engeng...
    果胖胖阅读 1,365评论 0 0