JavaScript学习之路<五>

来源:互联网 发布:linux 桌面 2017 编辑:程序博客网 时间:2024/05/23 02:06
/**
         * js中数组类似于Java里的map容器,长度可随意改变,元素类型任意
         */        
        //var arr = [1,2,3,4,true,"ssfd",new Date()];
        //alert(arr.length);
        //alert(arr);// 隐式调用toString()
        
        /**
         *push 和 pop
         */
        var arr = [new Date(),false];
        //arr.push(1,2);//返回新数组的个数
        //alert(arr);
        arr.pop();//从数组尾部移除一个元素,无参数(返回值为移除的元素)
        
        /**
         *shift 和unshift
         */
        var arr = [1,2,3];
        //alert(arr.shift());//从头部移除一个元素(返回移除的值)  
        //alert(arr.unshitf(10,false));//从头部插入多个元素(返回新数组元素个数)
        
         /**
         *splice(操作数组本身) 和 slice(不操作数组本身)
             splice:第一个参数:起始位置
                     第二个参数:表示截取的个数
                     第三个参数以后:表示追加的新元素个数
         */
         var arr = [1,2,3,4,5];
         //arr.splice(1,2,3,4,5);
         //alert(arr);//1 3 4 5 4 5
         arr.slice(2,4);
         //alert(arr);//1,2,3,4,5
        
         /**
          *操作数组的方法 concat join
          */
          var arr1 = [1,2,3];
          var arr2 = [4,5];
          var result = arr1.concat(arr2);//合并操作 不操作数组本身
          //alert(result);
          var result2 = arr1.join("-");//不操作数组本身 1-2-3
          //alert(result2);
          
          /**
          *sort排序 (按字符串)
           reverse倒序
          */
          var arr3 = [3,4,1,5];
          //alert(arr3.sort());//1,3,4,5
          //alert(arr3.reverse());//按集合的位置倒序 5 1 4 3
          
          var arr4 = [10,2,4,1,7];
          //alert(arr4.sort());//1,10,2,4,7 按字符串顺序排序
          
          function compare(value1,value2){
              if(value1 < value2){
                  return -1;
              }else if(value1 > value2){
                  return 1;
              }else{
                  return 0;
              }
          }
          
          alert(arr4.sort(compare));

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
  • function sortNumber(a,b){
  • return a - b}
原创粉丝点击