首页 > 编程语言 > 详细

js array 排序

时间:2019-07-03 09:39:25      阅读:87      评论:0      收藏:0      [点我收藏+]

 

数据

let data = [
        {chinese: 蔡司, english: Chase‘,score:67},
        {chinese: 艾伦, english: Allen,score:77}, 
{chinese: 左拉, english: Zola,score:87},
{chinese: 贝克, english: Baker‘,score:99},
{chinese:
伯格, english: Berg‘,score:55},
{chinese:
菲奇, english: Fitch‘,score:100},
{chinese:
迪安, english: Dean‘,score:86},
{chinese:
厄尔, english: Earle‘,score:40},
{chinese:
亨利, english: Henry‘,score:70}, ]

汉字数组属性排序

  //根据汉字首字母排序
    //使用箭头函数
    //【注】localeCompare() 是js内置方法
     data.sort((a, b)=> b.chinese.localeCompare(a.chinese, zh)); //z~a 排序
     data.sort((a, b)=> a.chinese.localeCompare(b.chinese, ‘zh‘)); //a~z 排序
 

英文排序

 //根据英文字母排序
    //使用箭头函数
     data.sort((a, b)=> b.english.charCodeAt(0)-a.english.charCodeAt(0)); //z~a 排序
     data.sort((a, b)=> a.english.charCodeAt(0)-b.english.charCodeAt(0)); //a~z 排序

数字排序

 //根据数字排序
    //使用箭头函数
     data.sort((a, b)=> b.score-a.score); //分数从高到低 排序
     data.sort((a, b)=> a.score-b.score); //分数从低到高 排序

 数字和字母混排

var d = [1,2,3,a,k,b,d,10,20,c]  
d.sort(function(a,b){  
    var c = isFinite(a), // 如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。  
        d = isFinite(b);  //isFinite() 判断a、b是否是数字。
    return (c != d && d - c) || a > b;   //c != d && c - d  如果c和d不相等 ,也就是说比较的值不是同一类型。那就比较 c-d的值是1还是-1(中间进行了隐式类型转换)
                        // 如果c == d 也就是说c、d是同一类型的值,c、d可能都是字母,也可能都是数字。这里就可以直接比较大小了 }) console.log(d);
//[1, 2, 3, 10, 20, "a", "b", "c", "d", "k"]
 

 

js array 排序

原文:https://www.cnblogs.com/xuqp/p/11124297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!