js数组常用的22种方法

版权声明:一只会飞的狼 https://blog.csdn.net/sinat_40697723/article/details/87691616

1. length     返回数组的长度

	  let arr = [7, 5, 4, 2];
	  console.log(arr.length);   //4

2. push()    向数组的末尾添加一个或更多元素(包括对象和数组),并返回新的长度。

	  let arr = [7, 5, 4, 2];
	  const len = arr.push(40);
	  console.log(len);       //5
	  console.log(arr);       //[7, 5, 4, 2, 40]

在末尾添加对象或数组时:

	  let arr = [7, 5, 4, 2];
	  let arr2 = [40, 5, 2];
	  const len = arr.push(arr2);
	  console.log(len);       //5
	  console.log(arr);       //[7, 5, 4, 2, Array(3)]

3. pop()  删除并返回数组的最后一个元素

    let arr = [7, 5, 4, 2];
    const ret = arr.pop();
    console.log(ret);       //2
    console.log(arr);       //[7, 5, 4]

4.  unshift()    向数组的开头添加一个或更多元素,并返回新的长度。

    let arr = [7, 5, 4, 2];
    const ret = arr.unshift(9);
    console.log(ret);       //5
    console.log(arr);       //[9, 7, 5, 4, 2]

5. shift()    删除并返回数组的第一个元素

    let arr = [7, 5, 4, 2];
    const ret = arr.shift();
    console.log(ret);       //7
    console.log(arr);       //[5, 4, 2]

6.  concat()    连接两个或更多的数组(可以是元素),并返回结果。

    let arr = [7, 5, 4, 2];
    const ret = arr.concat(2);
    console.log(ret);       //[7, 5, 4, 2, 2]
    console.log(arr);       //[7, 5, 4, 2]

concat含有多个参数时:

    let arr = [7, 5, 4, 2];
    let arr1 = [9, 7];
    const ret = arr.concat(2, arr1);
    console.log(ret);       //[7, 5, 4, 2, 2, 9, 7]
    console.log(arr);       //[7, 5, 4, 2]

7.  join()    把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。默认是 ,分隔

    let arr = [7, 5, 4, 2];
    const ret = arr.join();
    console.log(ret);       //7,5,4,2     string类型
    console.log(arr);       //[7, 5, 4, 2]

指定分隔符分隔时:

    let arr = [7, 5, 4, 2];
    const ret = arr.join('');
    console.log(ret);       //7542

    const ret = arr.join(' ');
    console.log(ret);       //7 5 4 2

    const ret = arr.join('-');
    console.log(ret);       //7-5-4-2

8.  reverse()   颠倒数组中元素的顺序,原数组会改变

    let arr = [7, 5, 4, 2];
    const ret = arr.reverse();
    console.log(ret);       //[2, 4, 5, 7]
    console.log(arr);       //[2, 4, 5, 7]

9.  slice(start, end)     可从已有的数组中返回选定的元素。 start指定开始的位置,end指定结束的位置,end可以不用。

    let arr = [7, 5, 4, 2];
    const ret = arr.slice(0, 2);
    console.log(ret);       //[7, 5]
    console.log(arr);       //[7, 5, 4, 2]

    const ret = arr.slice(0);
    console.log(ret);       //[7, 5, 4, 2]
    console.log(arr);       //[7, 5, 4, 2]

    const ret = arr.slice(-2, -1);
    console.log(ret);       //[4]
    console.log(arr);       //[7, 5, 4, 2]

10.  splice(index,howmany,item1,.....,itemX)      向/从数组中添加/删除/替换项目,然后返回被删除的项目。  会改变原数组

删除:

    let arr = [7, 5, 4, 2];
    const ret = arr.splice(0, 2);
    console.log(ret);       //[7, 5]
    console.log(arr);       //[4, 2]

添加:

    let arr = [7, 5, 4, 2];
    const ret = arr.splice(2, 0, 99);
    console.log(ret);       //[]
    console.log(arr);       //[7, 5, 99, 4, 2]

替换:

    let arr = [7, 5, 4, 2];
    const ret = arr.splice(2, 1, 99);
    console.log(ret);       //[4]
    console.log(arr);       //[7, 5, 99, 2]

11.  toString()    任何对象都具有的方法 把数组转换为字符串描述,并返回结果。

    let arr = [7, 5, 4, 2];
    const ret = arr.toString();
    console.log(ret);       //7,5,4,2   string类型
    console.log(arr);       //[7, 5, 99, 2]

12.  valueOf()    返回 Array 对象的原始值。

    let arr = [7, 5, 4, 2];
    const ret = arr.valueOf();
    console.log(ret);       //[7, 5, 4, 2]
    console.log(arr);       //[7, 5, 4, 2]

13.    forEach()       调用数组的每个元素,并将元素传递给回调函数,该方法没有返回值。

    let arr = [7, 5, 4, 2];
    arr.forEach((item, index) => {
      console.log(item, index);
    });

14.   sort()     对数组的每一项进行排序。 会改变原数组

升序:

    let arr = [7, 5, 4, 2];
    const rst = arr.sort((a, b) => {
      return a - b;
    });
    console.log(arr);    //[2, 4, 5, 7]
    console.log(rst);    //[2, 4, 5, 7]

降序:

    let arr = [7, 5, 4, 2];
    const rst = arr.sort((a, b) => {
      return b - a;
    });
    console.log(arr);    //[7, 5, 4, 2]
    console.log(rst);    //[7, 5, 4, 2]

15.    filter()    对数组进行筛选,并且返回新的数组。不会改变原数组。

    let arr = [7, 5, 4, 2];
    const rst = arr.filter((item, index) => {
      return item > 4;
    });
    console.log(arr);    //[7, 5, 4, 2]
    console.log(rst);    //[7, 5]
    let arr = [7, 5, 4, 2];
    const rst = arr.filter((item, index) => {
      return index > 2;
    });
    console.log(arr);    //[7, 5, 4, 2]
    console.log(rst);    //[2]

16.    indexOf()     从前往后搜索,返回给定参数的索引值,没有就返回-1

    let arr = [7, 5, 4, 2];
    const rst1 = arr.indexOf(1);
    const rst2 = arr.indexOf(5);
    console.log(rst1);    //-1
    console.log(rst2);    //1

17.   lastIndexOf()    从后往前搜索, 返回给定参数的索引值, 没有就返回-1

    let arr = [7, 5, 4, 5, 2];
    const rst1 = arr.lastIndexOf(1);
    const rst2 = arr.lastIndexOf(5);
    console.log(rst1);    //-1
    console.log(rst2);    //3

18.   some()     判断数组中是否至少有一项满足条件,有就返回true,都不满足就返回false。不会改变原数组。

    let arr = [7, 5, 4, 5, 2];
    const rst1 = arr.some((item, index) => {
      return item > 10;
    });
    const rst2 = arr.some((item, index) => {
      return item > 5;
    });
    console.log(rst1);    //false
    console.log(rst2);    //true
    console.log(arr);     //[7, 5, 4, 5, 2]

19.   every()    数组每一项都满足条件就返回true,有一项不满足就返回false。不会改变原数组。

    let arr = [7, 5, 4, 5, 2];
    const rst1 = arr.every((item, index) => {
      return item > 10;
    });
    const rst2 = arr.every((item, index) => {
      return item > 1;
    });
    console.log(rst1);    //false
    console.log(rst2);    //true
    console.log(arr);     //[7, 5, 4, 5, 2]

20.   map()    返回原数组经过函数处理后形成的一个新的数组。

    let arr = [7, 5, 4, 5, 2];
    const rst1 = arr.map((item, index) => {
      return item += 1;
    });
    console.log(rst1);    //[8, 6, 5, 6, 3]
    console.log(arr);     //[7, 5, 4, 5, 2]

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

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
//initialValue是total的初始值
// currentIndex, arr这两个参数可选

对数组每一项进行累加:

    let arr = [7, 5, 4, 5, 2];
    const rst1 = arr.reduce((total, item) => {
      return total += item;
    }, 0);
    console.log(rst1);    //23
    console.log(arr);     //[7, 5, 4, 5, 2]

22.    reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。

注意:以下7种方法会改变原数组。

    //push  pop   unshift  shift   splice  reverse   sort   7种 

猜你喜欢

转载自blog.csdn.net/sinat_40697723/article/details/87691616