说到JavaScript数组,大家基本上第一时间就能想到pop()、push()、shift()、unshift()、indexof()等。今天给大家分享几个开发中常用的JS数组方法。1.filter()语法:array.filter(function(currentValue,index,arr),thisValue)参数说明:currentValue:当前元素对象(必填)index:当前元素的索引值(可选)arr:当前元素元素属于对象数组(可选)thisValue:执行回调时要使用的对象,传递给函数,用作“this”的值。如果省略thisValue,则“this”的值为“undefined”(可选)//过滤age大于10的元素varages=[5,32,7,10,33,12,40];varres=ages。filter(function(currentValue){returncurrentValue>10;})console.log(res.toString());//输出结果:32,33,12,40//箭头函数写法varres1=ages.filter(item=>item>10)console.log(res.toString());//输出结果:32,33,12,402,forEach()语法:array.forEach(function(currentValue,index,arr),thisValue)参数用法是同上//循环输出各个参数varages=[5,32,7,10,33,12,40];ages.forEach(function(currentValue,index){console.log("parameter:"+currentValue+"index:"+index);})//箭头函数写法ages.forEach((item,index)=>{console.log("parameter:"+item+"index:"+index);})看下面这一段ofcode://把10改成20varages=[5,32,7,10,33,12,40];ages.forEach(function(currentValue,index){if(currentValue===10){ages[index]=20return}console.log(index);})console.log(ages);我们在代码中把10的值改成20后,加了一个return,但是运行结果显示index的值打印了7次,这是forEach的一个缺点,只有循环结束才停止。那么如何解决呢?3.some()语法:array.some(function(currentValue,index,arr),thisValue)参数用法同上//将10改为20varages=[5,32,7,10,33,12,40];ages.some(function(currentValue,index){if(currentValue===10){ages[index]=20returntrue}console.log(index);})console.log(ages);//把10是修改为20箭头函数varages=[5,32,7,10,33,12,40];ages.some((item,index)=>{if(item===10){ages[index]=20returntrue}console.log(index);})console.log(ages);上面代码的结果只会打印三次index的值,有些可以完美解决forEach()的不足。就看大家在开发过程中根据自己的需要选择了。4.every()语法:array.every(function(currentValue,index,arr),thisValue)参数用法同上//判断每个元素的值是否大于4varages=[5,32,7,10,33,12,40];varres=ages.some(function(currentValue){returncurrentValue>4})console.log(res);//输出:true//arrowfunctionvarres=ages.some(item=>项目>4)控制台.log(res);5.reduce()语法:array.reduce(function(total,currentValue,currentIndex,arr),initialValue)参数说明:total:required.初始值,或者计算完成后的返回值。当前值:必需。当前元素currentIndex:可选。当前元素的索引arr:可选。当前元素所属的数组对象。初始值:可选。传递给函数的初始值//计算所有元素的总和varnumbers=[15.5,2.3,1.1,4.7];varres=numbers.reduce(function(total,currentValue){returntotal+=currentValue},0)console.log(res);//23.6//计算大于4的元素之和varresult=numbers.filter(item=>item>4).reduce((total,item)=>total+=item,0)console.log(result);//20.26.合并数组用法:vararr=[...array1,...array2]结果:将数组2的元素值拼接在数组1的元素值后面vararr=[1,2,3]vararr2=[4,5,6]varres=[...arr,...arr2]console.log(res);//输出结果:[1,2,3,4,5,6]varres=[...arr2,...arr]console.log(res);//输出结果:[4,5,6,1,2,3][编辑推荐]谁说Java不能做爬虫-进阶版的爬虫三把剑(便宜)客Selenium|Httpclient|Jsoup字节跳动抖音今日头条小程序开发教程PHP微信现金红包分析实战开发视频课程uniapp视频教程IOSAndroidAPP微信小程序H5在线教育项目实战开发源码结合solver,清华校友和MIT中国博士生研发首套感知算法提高自动驾驶安全性
