zoukankan      html  css  js  c++  java
  • 数组

    数组三种创建方法:

      var arr0 = [];                                //  字面量方法创建

      var arr1 = new Array();     //   构造函数实例化对象

      var arr2 = Array();       //   字符串转数组类型

      delete可以删除数组中的元素,因为数组就是伪对象,删除之后元素为empty,不会破环数组的紧密性

     

    重构栈方法:

      push(推入最后一项,返回数组新长度)、pop(弹出最后一项,返回弹出的值):

     1         // 重写push方法:
     2          var arr = [1,2,3];
     3         function push(arr){
     4             for(var i=1; i<arguments.length;i++){
     5                 arr[arr.length]  = arguments[i];
     6             }
     7             return arr;
     8         }
     9     
    10         console.log(push(arr,4,5,6));   
    11         // 结果为 [1,2,3,4,5,6]
    12 
    13         // 重写pop方法
    14         var arr = [1,2,3];
    15         function pop(arr){
    16             var item = arr[arr.length-1];
    17             arr.length--;
    18             return item;
    19         }
    20         console.log(pop(arr),arr); 
    21         // 结果为[1,2] 3
    22     

    重构队列方法:

      unshift(推入第一项,返回数组新长度)、shift(取出第一项,返回取出的值):

     1         // 重写unshift方法
     2         var arr = [1,2,3,4];
     3         function unshift(arr){
     4             var len = arguments.length-1;
     5             for(var i= arr.length-1;i>=0;i--){
     6                 arr[i+len] = arr[i];
     7             }
     8             for(var j=1;j<arguments.length;j++){
     9                 arr[j-1] = arguments[j];
    10             }
    11             return arr;
    12 
    13         }
    14         console.log(unshift(arr,4,5,6)); 
    15         //   结果为 [4,5,6,1,2,3,4]
    16 
    17         // 重写shift方法
    18         var arr = [1,2,3,4];
    19         function shift(arr){
    20             var item = arr[0];
    21             for(var i =0;i<arr.length;i++){
    22                 arr[i] = arr[i+1];
    23             }
    24             arr.length--;
    25             return item;
    26         }
    27         console.log(shift(arr),arr); 
    28         //  结果为 [2,3,4]
    29     

    重排序方法:

      reverse()、sort(),这两个方法都会调用toString()方法,然后比较得到后的字符串,即使每一项是数字,比较的也是字符串。

    1         var arr = [0,1,10,5,15,9];
    2 
    3         console.log(arr.reverse());  //  [ 9, 15, 5, 10, 1, 0 ] 
    4 
    5         console.log(arr.sort());      //  [ 0,  1, 10, 15, 5, 9]

      sort()方法可以接收一个比较函数作为参数,以便确定哪个值位于哪个值的前面。

     1         var arr = [0,1,10,5,15,9];
     2         function compare(value1,value2){
     3             if(value1 < value2){
     4                 return -1;
     5             }else if (value1 > value2){
     6                 return 1;
     7             }else{
     8                 return 0;
     9             }
    10         }
    11         
    12         console.log(arr.sort(compare).toString());    
    13         // 输出结果  [0,1,5,9,10,15]

    操作方法:

      concat() 连接  、splice(index,howmany,element1,......elementx)  删除 、插入、替换 。index:必需,从何处添加或删除元素;howmany:删除多少元素,可以是0,也可以不写,表示从index删除到最后,elment1-elmentx表示添加的新元素。返回被删除元素的数组。slice(strat,end),表示从strat截取到end但不包含end,而且slice()不改变原数组。

       

     1         var colors = ["red", "green", "blue"];
     2          var removed = colors.splice(0,1);               
     3          // 删除第一项 alert(colors);     
     4          // green,blue alert(removed);    
     5          // red,返回的数组中只包含一项 
     6  
     7         removed = colors.splice(1, 0, "yellow", "orange");   
     8         // 从位置 1 开始插入两项 alert(colors);    
     9         // green,yellow,orange,blue alert(removed);    
    10         // 返回的是一个空数组 
    11  
    12         removed = colors.splice(1, 1, "red", "purple");      
    13         // 插入两项,删除一项 alert(colors);    
    14         // green,red,purple,orange,blue alert(removed);    
    15         // yellow,返回的数组中只包含一项                             

     

    位置方法:

      indexof()、lastIndexof()。这两个方法都接收 两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()方法从数组的开头(位 置 0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。 indexof()、lastIndexof()这两个方法都是用全等比较。

     

    迭代方法:

      every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。

      filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

      forEach():对数组中的每一项运行给定函数。这个方法没有返回值。不遍历空元素,也不遍历属性

      map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的新数组。

      some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。

      for-in():循环可以把数组的可枚举属性遍历到

      注意: delete删除数组元素,不会造成数组的自动收缩,紧密,数组的长度不会发生改变

    归并方法:

      reduce()和 reduceRight()。这两个方法都会迭 代数组的所有项,然后构建一个终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历 到后。而 reduceRight()则从数组的后一项开始,向前遍历到第一项。

     传给 reduce()和 reduceRight()的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。这 个函数返回的任何值都会作为第一个参数自动传给下一项。

    将类数组转换为数组的方法:

       var  inputs = document.getElementsByTagName("input");

      ES5  

        var  list = Array.prototype.slice.call(inputs);

        var  list = [].slice.call(inputs);

        var  list = Array.prototype.concat.apply([],divs);
        var  list = [].concat.apply([],divs);

      ES6

        var  list = Array.from(inputs);

  • 相关阅读:
    介绍一下Markdown语言
    通向架构师的道路(第一天)之Apache整合Tomcat lifetragedy的专栏 博客频道 CSDN.NET
    中国分省市地图导航SVG格式(基于Raphaël)
    异构计算完全解析CSDN.NET
    cocos2dx开启Wifi
    用“Web的思想”做PC客户端
    高斯模糊原理及几个实现例子
    android开启Wifi AP
    perl函数映射
    显示Iframe指定位置
  • 原文地址:https://www.cnblogs.com/wangjingzhi/p/12116972.html
Copyright © 2011-2022 走看看