zoukankan      html  css  js  c++  java
  • 数组方法总结

    数组:存储一组或者一系列相关数据的容器;

      动态赋值方法: 增、删、改、截、拼、复、排、转         1.作用 2.返回值 3.是否会影响原数组    

    增:
      unshift("新增的元素")
        1.在数组的首部增加元素
        2.返回新增后数组的长度
        3.是
        用法
          var arr = [3,4,5,6,7];
          console.log(arr.unshift(8));
          console.log(arr);

          var arr = [3,4,5,6,7];
          console.log(arr.unshift([1,2,3]));
          console.log(arr); //[[1,2,3],3,4,5,6,7]

      push("新增的元素")
        1.在数组的尾部增加元素
        2.返回新增后数组的长度
        3.是

        用法:

          var arr = [3,4,5,6,7];

          console.log(arr.push([1,2,3])); 

          console.log(arr); //[[1,2,3],3,4,5,6,7]

    删:
      shift()
        1.删除数组首部的元素(一次只能删除一个元素) 思考:如何删除数组所有元素?
        2.返回被删除的元素
        3.是

        用法:
          var arr = [3,4,5,6,7];
          console.log(arr.shift());
          console.log(arr);

      pop()
        1.删除数组尾部的元素(一次只能删除一个元素)
        2.返回被删除的元素
        3.是
    改:
      splice(下标位置,删除的长度,增加元素,……)
        1.在数组指定的位置,删除、新增、修改。
        2.返回是被删除的元素列表
        3.是
        用法:在下标为2后面添加3这个数字
            var arr=[10,3,32,43,434,87];
            arr.splice(2,0,3);
            console.log(arr);
            结果:10,3,32,3,43,434,87
          删除下标为2替换为3这个数字
            arr.splice(2,1,3);
            结果:10,3,3,43,434,87
          删除index2开始的后3个,并添加3
            arr.splice(2,3,3);
            表示:删数组的第2个数字开始的后三个数字,并且用3去替换;(从0开始计算)
            结果:(3) [10,3,87]

    截:
      slice[start,end) : 前包后不包
        1.截取指定范围的元素
        2.返回被截取到的元素列表
        3.否
      用法:
        var arr = [3,4,5,6,7];
        console.log(arr.slice(1,3)); //[4,5]
        console.log(arr)

        var arr = [3,4,5,6,7];
        console.log(arr.slice(1,-2)); //[4,5]
        console.log(arr);

        var arr = [3,4,5,6,7];
        console.log(arr.slice(-4,-2)); //[4,5]
        console.log(arr);

        var arr = [3,4,5,6,7];
        console.log(arr.slice(4,2)); //空数组
        console.log(arr);
        substring:参数不可以是负数


        var arr=[10,5,40,25,1000,1];
        console.log(arr.slice(2));
        结果:40,25,1000,1 //取得是下标数字为2以及之后的数字


        var arr=[10,5,40,25,1000,1];
        console.log(arr.slice(2,4));、、提取[2-4)之间的字符,不包前后
        结果:40,25 //取得是2,3的值

    拼 :
      concat("拼接的内容") 注:如果拼接的内容是一个数组,则将该数组所有的元素提取出来再拼接
        1.在指定的数组末尾拼接新的元素
        2.返回拼接后的新数组
        3.否

        用法:
          var a=[2,4,5];
          var b=[34,55];
          var c=["beijing"];
          console.log(a.concat(b)); //(5) [2, 4, 5, 34, 55]
          console.log(a.concat(c)); //(6) [2, 4, 5,"beijing"]
          console.log(a); //[2,4,5]

    复 :面试题,至少写出三种复制数组的方法?
      1. slice(0)
      2. arr.concat()
      3. var arr = [3,4,5,6,7];
        var list = [];
        for(var i = 0;i < arr.length;i ++){
          list[i] = arr[i];
        }
        arr[0] = 9;
        console.log(arr);
        console.log(list);


    转:

      join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。转为字符串
        1.将数组转为指定连接符的字符串。
        2.返回转换后的字符串。
        3.否

        用法:
          var arr = [3,5,4,6,7,100];
          console.log(arr.join(""));//常用 35467100
          console.log(arr); //[3,5,4,6,7,100];
          var a=[2,4,5];
          console.log(a.join())
          //结果:2,4,5;
          console.log(a.join("."))
          //结果:2.4.5
      toString()
        转换后字符串
        否
        1.转化为字符串
          var arr=[2,5,3,1,5];
          console.log(arr.toString()); // 25315 字符串
          console.log(arr) //[2,5,3,1,5]; 不改变
        2.十进制转为n进制
          var a=123;
          console.log(a.toString(2))

    排:

      reserve()
        1.将数组元素逆序存放
        2.返回逆序后的数组
        3.是

        用法:
          var arr=[2,4,5];
          console.log(arr.reverse()); //[5,4,2]
          console.log(arr) //[5,4,2]
      sort()    sort(function(a,b){return a-b;})

        1.排序

        2.返回排序后的数组

        3.是
        //函数作为参数出现,称为回调函数,a-b从小到大;b-a从大到小
        字符串时按照字母顺序进行排序,不是字符串时要构造函数

        用法:
          var arr=[10,5,40,25,1000,1];
          console.log(arr.sort(function(a,b){return a-b;}))
          console.log(arr) //改变原数组
          结果:(6) [1, 5, 10, 25, 40, 1000];
              (6) [1, 5, 10, 25, 40, 1000]

      拓展:
        查找数组中最小值
        var minArray=Math.min.apply(null,Array);

       ES5新增的数组方法

      indexOf(元素,下标位置):查找,并返回第一个值出现的下标。若没有,返回-1
          value表示要查找的数字,start表示从当前数组的第几个值开始查找,并返回value首次出现的下标
        例1: var arr=[1,2,3,8,2,6,7]
          console.log(arr.indexOf(2,1))
          结果:1
          分析:要查找2这个数字,所以value为2;从数组的0位数开始查询,数组中第一个出现的2下标为1,所以打印结果为1
        例2: var str="Hello world!"
          console.log(str.indexOf(world))
          打印结果:6

      map:有返回值,参数是匿名函数
        var arr=[10,2,3,5,2]
        var list = arr.map(function(value,index){
          retrun value+1; //11,3,4,6,3
        })
        console.log(list)
      forEach:遍历数组;
        参数:匿名函数;
        数组有多少项,就调用多少次函数
        返回值:undefined

        用法:
          var arr=[10,2,3,5,2]
          arr.forEach(function(value,index,arr){//回调函数 value表示元素值,index表示元素下标
            console.log(value+":"+index+":"+arr);
          })
          结果:  10 : 0 :[10,2,3,5,2]
              2 : 1 : [10,2,3,5,2]
              3 : 2 : [10,2,3,5,2]
              5 : 3 : [10,2,3,5,2]
              2 : 4 : [10,2,3,5,2]
      filter:过滤器,筛选

        用法:
          var arr=[1,2,3,4,5,6,7];
          var newArray=arr.filter(function(value,index,arr){
            return value > 5;
          })
          console.log(newArray)
          结果:[6,7]

      reduce 求数组元素和

        用法:
          var arr=[1,2,3,4,5,6,7];
          var sum=arr.reduce(function(pre,next,index,array){
            return pre + next;
          })
          console.log(sum)//28

       
      有任何错误和不足的地方,还望各位指正。

  • 相关阅读:
    IOS开发关于测试的好的网址资源
    创建型模式--工厂模式
    在XcodeGhost事件之后,获取更纯净的Xcode的方法。
    算法积累:解决如何获取指定文件夹路径或者文件路径下所有子文件后缀为.h .m .c的文本的行数
    结构型模式--装饰模式
    设计模式 总揽 通过这篇随笔可以访问所需要了解的设计模式
    IOS之未解问题--关于IOS图像渲染CPU和GPU
    链接
    Matlab2014下载和破解方法,以及Matlab很好的学习网站
    苹果Mac隐藏壁纸在哪里?Mac隐藏壁纸查找教程
  • 原文地址:https://www.cnblogs.com/keyanjyl/p/7524944.html
Copyright © 2011-2022 走看看