zoukankan      html  css  js  c++  java
  • js array 排序

    数据

    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"]
     
  • 相关阅读:
    Linux 在当前文件夹下查找某文件
    Linux 计算文件夹下内容大小【包含软链接的文件】
    《什么是生物信息学》摘录
    二分查找算法
    python之递归函数
    python之内置函数、匿名函数
    python之迭代器,生成器
    Python之文件操作
    基础数据类型的整理
    Python数据可视化—折线图
  • 原文地址:https://www.cnblogs.com/xuqp/p/11124297.html
Copyright © 2011-2022 走看看