zoukankan      html  css  js  c++  java
  • JavaScript学习11 数组排序实例

     

    JavaScript学习11 数组排序实例

    数组声明

      关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html

      数组声明的一种方式:

    var array = new Array();
    array.push(1);
    array.push(2);
    array.push(3);
    alert(array.length)

      数组声明的第二种方式,并排序:

    var array = [1, 3, 25];
    array.sort(); //对数组排序,默认升序
    alert(array); //结果显示:1,25,3

      这是为什么呢?

     

    数组的排序方法

      对于JavaScript数组的sort方法来说,它会先将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序。

      这是因为JS的数组是没有数据类型的,放什么类型的数据都行,所以排序方法必须为各种不同类型的元素找到一个统一的比较方法。

     

      所以,跟Java一样,需要自定义比较方法(策略模式):

    //首先定义一个比较函数:
    function compare(num1, num2)
    {
           var temp1 = parseInt(num1);
           var temp2 = parseInt(num2);
    
           if(temp1 < temp2)
           {
                  return -1;
           }
           else if(temp1 == temp2)
           {
                  return 0;
           }
           else
           {
                  return 1;
           }
    }
    
    //然后调用这个比较方法进行排序
    var array = [1, 3, 25];
    array.sort(compare); //函数名是对象引用
    alert(array); //显示:1,3,25

     

    使用匿名函数

    上面的排序使用匿名函数的方式:

    var array = [1, 3, 25];
    
    // 匿名函数
    array.sort(function(num1, num2)
    {
           var temp1 = parseInt(num1);
           var temp2 = parseInt(num2);
    
           if(temp1 < temp2)
           {
                  return -1;
           }
           else if(temp1 == temp2)
           {
                  return 0;
           }
           else
           {
                  return 1;
           }
    }
    );
    alert(array);

    参考资料

      圣思园张龙老师Java Web视频教程。

      W3School JavaScript教程:http://www.w3school.com.cn/js/index.asp

      英文版:http://www.w3schools.com/js/default.asp

  • 相关阅读:
    生产者和消费者,锁,队列
    爬虫日记-xpath来临
    进程进阶
    Entity Framework 复杂类型(转)
    EF Code First 学习笔记:约定配置(转)
    EF Code First学习笔记 初识Code First(转)
    JSON草稿
    JSON实例(单对象)
    JSON语法2
    JSON 语法
  • 原文地址:https://www.cnblogs.com/mengdd/p/3696510.html
Copyright © 2011-2022 走看看