js常用的数组方法

本文介绍了JavaScript中几种常见的数组方法,包括forEach用于遍历数组但不修改原数组,filter用于过滤数组元素生成新数组,map用于映射数组元素生成新数组,every和some分别检查所有元素是否满足条件,以及是否有任意元素满足条件。reduce和reduceRight则用于对数组元素进行累积计算,生成单一结果。这些方法各有特点,在处理数组时有不同应用场景。
摘要由CSDN通过智能技术生成

forEach()

var a =[1,2,3]
a.forEach((val,ind,arr)=>{
//val是数组的每个元素,ind是元素的索引,arr是数组本身
a[ind] = 0
})
console.log(a)

输出:[0,0,0]

forEach不能通过val修改数组,也不能返回新数组,其实就类似for循环,只是遍历数组。

filter()

var a =[1,2,3]
let b = a.filter((val,ind,arr)=>{
//val是数组的每个元素,ind是元素的索引,arr是数组本身
return val>2
})
console.log(b)

输出:[3]

filter可以过滤指定条件的元素,添加并返回一个新数组。不会对原数组产生影响。

map()

var a =[1,2,3]
let b = a.map((val,ind,arr)=>{
//val是数组的每个元素,ind是元素的索引,arr是数组本身
return val*2
})
console.log(b)

输出:[2,4,6]

map可以操作原数组里的元素,然后返回一个新数组。不会对原数组产生影响。

every()

var a =[1,2,3]
let b = a.every((val,ind,arr)=>{
//val是数组的每个元素,ind是元素的索引,arr是数组本身
return val>2
})
console.log(b)

输出:false

every返回的是一个布尔值,若所有元素全部符合返回条件则返回true,反之则返回false

some()

var a =[1,2,3]
let b = a.some((val,ind,arr)=>{
//val是数组的每个元素,ind是元素的索引,arr是数组本身
return val>2
})
console.log(b)

输出:true

some与every相反,若所有元素里只要有一个符合返回条件则返回true,反之则返回false。

reduce()

var a =[1,2,3]
let b = a.reduce((total,val,ind,arr)=>{
//total是初始值,val是数组的每个元素,ind是元素的索引,arr是数组本身
return total+val
},0)
//给total赋初始值
console.log(b)

输出:6

reduce 的格式为:数组.reduce((初始数据,元素,索引,数组)=>{return 初始数据},初始值)

reduce可以遍历数组,并把每一次return的值再赋予total,最后遍历完数组后,把total返回给新变量。

若不写return,只写了初始值则会遍历数组内的全部元素,遍历后的第一次循环total值为赋予的初始值的内容,其余循环total的值都为undefined。

若不写return ,也不写初始值则会遍历数组的从第二个元素开始往后的所有元素,遍历后的第一次循环total值为数组里第一个元素的内容,其余循环total的值都为undefined。

若写了return,没写初始值则会遍历数组的从第二个元素开始往后的所有元素, 遍历后的第一次循环total值为数组里第一个元素的内容,其余循环total值都为return的值。

若遍历空数组,写了return ,没写初始值 会报错。

若遍历空数组,写了return,写了初始值 则不会执行执行回调函数里的任何代码,会直接返回初始值作为结果。

若遍历空数组,没写return,写了初始值 则不会执行执行回调函数里的任何代码,会直接返回初始值作为结果。

reduceRight()

var a =[1,2,3]
let b = a.reduce((total,val,ind,arr)=>{
//total是初始值,val是数组的每个元素,ind是元素的索引,arr是数组本身
return total+val
},0)
//给total赋初始值
console.log(b)

输出:6

reduceRight的操作与reduce一样,只不过reduce是从左边开始遍历数组,reduceRight是从右边开始遍历数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值