JS数组的使用方法

263 阅读3分钟

JS数组常用方法整理

添加(末尾)

1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。

var arr = [1,2,3,4];
arr.push(5,6,7);
arr = [1,2,3,4,5,6,7];

删除

2. Array.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。

var arr = [1,2,3,4,5,6,7];
var del = arr.pop();
    //del=7;
    //arr=[1,2,3,4,5,6];

添加(开头)

3. Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。

var arr = [1,2,3,4,5,6,7];
var res = arr.unshift(0);
        //res=8;
        //arr=[0,1,2,3,4,5,6,7];

删除(第一项)

4. Array.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。

var arr = [1,2,3,4,5,6,7];
var res = arr.shift();
        //res=1;
        //arr=[2,3,4,5,6,7];

合并

5. Array.concat(arr1,arr2...),合并两个或多个数组,生成一个新的数组。原数组不变。

        var arr = [1,2,3,4,5,6,7];
        var arr1 = ["a","b","c"];
        var arr2 = ["x","y","z"];
        var res =arr.concat(arr1,arr2);
        //res=[1,2,3,4,5,6,7,"a","b","c","x","y","z"]
        //arr=[1,2,3,4,5,6,7];

字符串

6. Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。

        var arr = [1,2,3,4,5,6,7];
        var str1=arr.join();
        var str2=arr.join("-");
            //str1=1,2,3,4,5,6,7;
            //str2=1-2-3-4-5-6-7;

倒序

7. Array.reverse(),将数组倒序。原数组改变。

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

排序

8. Array.sort(),对数组元素进行排序。按照字符串UniCode码排序,原数组改变。

  ①从小到大

   var sortNum =function(a,b){
              return a-b;
          }
          arr.sort(sortNum);//[1,2,3,4,5,12,55]

②从大到小

          var sortNum=function(a,b){
              return b-a;
          }
          arr.sort(sortNum);//[55,12,5,4,3,1]

③按照数组对象中的某个值进行排序

          var arr = [
          {name:"迪迦"age:"55"},
          {name:"塞罗"age:"95"},
          {name:"戴拿"age:"56"}
          ]
          function compare(param){
              return function sortAge(a,b){
                  return a[param]-b[param];
              }
          }
          arr.sort(compare("age"));

后续扩展

9.Array.map(function),原数组的每一项执行函数后,返回一个新的数组。原数组不变。(注意该方法和forEach的区别)。

10.Array.slice(start,end),从start开始,end之前结束,不到end;如果不给end值,从start开始到数组结束。start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推,顾前不顾后。

          arr.sort(compare("age"));
          var arry =[1,2,3,4];
          var a =arry.slice(-3,-1);//[2,3]

11.Array.splice(index,howmany,arr1,arr2...) ,删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入。howmany为0时,则不删除元素。原数组改变。

12.Array.forEach(function),用于调用数组的每个元素,并将元素传递给回调函数。原数组不变。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)。

13.Array.filter(function),过滤数组中,符合条件的元素并返回一个新的数组。

         var arr =[1,2,3,4,5];
          var newArr=arr.filter(x=> x>3);//[4,5]

14.Array.every(function),对数组中的每一项进行判断,若都符合则返回true,否则返回false。

15.Array.some(function),对数组中的每一项进行判断,若都不符合则返回false,否则返回true。

16.Array.reduce(function),reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

          var arr =[1,2,3,4,5];
          var total =arr.reduce((a,b)=> a+b);//15