js数组常用方法总结1.forEach,遍历数组的方法,不会改变原数组,没有返回值leta=[1,2,3];a.forEach((item,index)=>{console.log(item);//123});2.map,返回一个新数组,默认返回undefinedleta=[1,2,3];letb=a.map((item,index)=>{returnitem+1;});控制台日志(b);//[2,3,4]3.find,找到数组中第一个满足条件的元素,不满足则返回undefinedleta=[1,2,3];让b=[2,3,4];letc=a.find((item,index)=>{returnitem>3;});letd=b.find((item,index)=>{returnitem>3;});控制台日志(c);//undefinedconsole.log(d);//44.findIndex,查找数组中第一个满足条件Index的元素,不满足返回-1;letd=b.findIndex((item,index)=>{returnitem>3;});console.日志(c);//-1console.log(d);//25.filter,返回一个满足新数组条件的,不改变元素组leta=[1,2,3];让b=a.filter((item,index)=>{returnitem>2;});控制台日志(b);//[3]6.every,该方法测试数组中的所有元素是否都能通过指定函数的测试。它返回一个布尔值。如果接收到空数组,则此方法在所有情况下都返回true。让a=[1,2,3,1];让b=a.every((item)=>item<4);控制台日志(b);//true7.some,该方法测试是否至少有1个元素通过了提供的函数测试。它返回一个布尔类型的值。如果使用空数组进行测试,则在所有情况下都会返回false。让a=[1,2,3,1];让b=a.some((item)=>item<2);console.log(b);//true8.push,在数组后面添加一个元素,返回数组的长度leta=[1,2,3];让b=a.push(4);控制台日志(a,b);//[1,2,3,4]49.pop,删除数组末尾的一个元素,并返回该元素,如果数组为空则返回undefinedleta=[1,2,3];letb=a.pop();console.log(a,b);//[1,2]310.unshift,在数组开头添加一个元素,返回数组的长度leta=[1,2,3];letb=a.unshift(4);console.日志(a,b);//[4,1,2,3]411.shift,删除数组开头的一个元素并返回该元素,如果数组为空,返回undefinedleta=[1,2,3];letb=a.shift();控制台.log(a,b);//[2,3]112.concat,该方法在一个数组后面连接新元素,可以接收n个参数,可以是任何数据类型。如果是数组,则数组后面会跟原数组拼接,如果是另一种数据类型,则在原数组后面添加元素。该方法不改变原数组,返回拼接后的新数组,所以可以进行链式操作leta=[1,2,3];letb=a.concat([4],5,"6",null,undefined,NaN,{});控制台日志(b);//[1,2,3,4,5,"6",null,undefined,NaN,{}]13.reverse,该方法反转数组中元素的位置并返回数组。数组的第一个元素成为最后一个元素,数组的最后一个元素成为第一个元素。此方法将更改原始数组。让a=[1,2,3];让b=a。撤销();安慰。日志(一);//[3,2,1]控制台。日志(b);//[3,2,1]14.slice(切片),该方法返回一个新的数组对象,它是由begin和end(包括begin,不包括end)确定的原始数组的浅拷贝。原数组不会改变。让a=[1,2,3];让b=a.slice(0,1);让c=a.slice(-1);console.log(b);//[1]console.log(c);//[3]15。splice(拼接),该方法向/从数组中添加/删除项目,然后返回删除的项目。此方法会改变原始数组。格式:array.splice(start[,deleteCount[,item1[,item2[,...]]]])leta=[1,2,3];letb=a.splice(1,0,"2","3");//添加a=[1,"2","3",2,3],b=[]//让b=a.splice(1,1);//删除a=[1,3],b=[2]16.includes,用于判断一个数组是否包含指定值,根据情况,包含则返回true,否则返回false。让a=[1,2,3];让b=a.includes(1);控制台日志(b);//true17.indexOf,该方法返回数组中可以找到给定元素的第一个索引,如果不存在则返回-1。让a=[1,2,3];让b=a.indexOf(1,1);让c=a.indexOf(1,-3);控制台日志(b);//-1console.log(c);//018.lastIndexOf,该方法返回给定元素在数组中的第一个索引,如果不存在则返回-1。让a=[1,2,3,1];让b=a.lastIndexOf(1,0);让c=a.lastIndexOf(1,-1);console.log(b);//0console.log(c);//319.join,该方法将一个数组(或类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一项,则返回该项时不带分隔符。默认以逗号连接leta=[1,2,3];letb=a.join("-");console.log(typeofb,b);//string'1-2-3'20.ruduce,该方法对数组中的每个元素执行你提供的reducer函数(按升序排列),并将其结果汇总成一个单一的返回值,格式:arr.reduce((prev,current,index,array)=>{},initialValue),如果没有提供initialValue,reduce将从索引1开始执行回调方法,跳过第一个索引。如果提供了initialValue,它从索引0开始。当前值index:当前索引array:当前数组initialValue:Accumulator传入初始值,如果没有提供初始值,将使用数组中的第一个元素。在没有初始值的空数组上调用reduce会抛出错误leta=[1,2,3,1];//letb=a.reduce((prev,current)=>prev+current,0)//arraySum//letb=a.reduce((prev,current)=>prev*current,1)//数组乘法letb=a.reduce((pre,current)=>{if(pre.includes(current)){returnpre;}else{returnpre.concat(current);}},[]);//数组去重console.log(b);会改变原数组的方法:push、pop、unshift、shift、splice、reverse、sort(排序)
