JS数组的常用方法整理

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

let arr=[1,2,3,4,5]
var longth=arr.push(6,7);
console.log(arr, longth);
//数组的arr的值变为arr[1,2,3,4,5,6,7];
//length接收返回的是修改后数组的长度7;

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

let arr=[1,2,3,4,5]
var delElement=arr.pop();
console.log(arr, delElement);
//arr的值为[1,2,3,4] ,delElement的值为5
//arr.pop()的与arr.length--的效果一样,但arr.length--没有返回值;

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

let arr=[1,2,3,4,5]
var longth=arr.unshift(0);
console.log(arr, longth);
//arr的值为[0,1,2,3,4,5];
//length的值为更改后数组的长度6;

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

let arr=[1,2,3,4,5]
var delElement=arr.shift();
console.log(arr, delElement);
//arr的值为[2,3,4,5];delElement的值为被删除的元素1;

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

let arr=[1,2,3,4,5]
let newArr=arr.concat([6,7,8],9,10);
console.log(newArr,arr);
//newArr的值为[1,2,3,4,5,6,7,8,9,10];
//arr的值还是原来的[1,2,3,4,5];
//concat()还可以复制一个新数组;
//let copyArr=arr.concat();
//copyArr的值和arr的相同

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

let arr=[1,2,3,4,5];
let newArr=arr.join()//默认用逗号连接
console.log(newArr);
//newArr=1,2,3,4,5;
//如果连接符为空字符串,则会无缝连接
console.log(arr.join(“”));//输出为12345;

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

let arr=[1,2,3,4,5];
let newArr=arr. reverse();
console.log(newArr,arr);
//newArr=[5,4,3,2,1]; arr=[5,4,3,2,1];

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

let arr=[2,3,5,1,4];
let newArr=arr.sort();
console.log(newArr,arr);
//newArr=[1,2,3,4,5]; arr r=[1,2,3,4,5]

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

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

let copyArr=arr.slice(); // slice()或者slice(0)都可以复制数组;
let arr=[1,2,3,4,5];
let newArr=arr.slice(1,3);//截取索引1到索引3(不包括3)的值;
console.log(newArr,arr);//newArr=[2,3];arr=[1,2,3,4,5];

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

let arr=[1,2,3,4,5];
let num1=arr.splice(1)
console.log(num1;arr)
//num=[2,3,4,5];arr=[1];

有两个值时,第一个值为删除的位置,第二个值为删除的个数;

let arr=[1,2,3,4,5];
let num1=arr.splice(2,3)//删除从索引值2开始的3个元素
console.log(num1;arr);
// num1=[3,4,5],arr=[1,2]

有三个或者多个值时,第一个值为插入元素的位置,第二个值为替换的个数,后面的值都为插入的新元素;

let arr=[1,2,3,4,5];
let num2=arr.splice(2,1,6,7,8);//从索引值2开始替换掉1个元素,并且插入6,7,8
//如果第二个值为0,则不替换,直接插入6,7,8;
console.log(num2;arr);
//被替换的值num2=[3]; arr=[1,2,6,7,8,4,5]

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

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

let arr=[2,3,5,1,4];
let newArr=arr.fliter(x => x>3);
console.log(newArr,arr);
//newArr=[5,4]; arr=[2,3,5,1,4]

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

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

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

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

最近喜欢上了一句话:摘星者,不怕夜长,加油!!