JavaScript中数组的map、foreach、reduce、filter、every、some之间的区别?

1.forEach方法按顺序让数组中的每一项做一件事情。

array.forEach(function(item, index, arr){
    // do something
}, thisValue)

var arr = [1, 2, 3]
arr.forEach(function(item){
    console.log(item)
})
// 1
// 2
// 3

参数
function(item, index, arr) 必需。 数组中每个元素需要调用的函数。
thisValue 可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值
函数参数
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
undefined

2.map方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

array.map(function(item, index, arr){
    return item*2
}, thisValue)

var arr = [1, 2, 3]
arr.map(function(item){
    return item*2
})
// [2, 4, 6]

参数
function(item, index, arr) 必需。 数组中每个元素需要调用的函数。
thisValue 可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值
函数参数
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

3.reduce方法接收一个函数作为累加器,对数组中的元素依次调用函数计算,并返回最终计算的值。

array.reduce(function(total, item, index, arr){
    return total + item
}, initialValue)

var arr = [1, 2, 3]
arr.reduce(function(total, item){
    return total + item
}, 1)
// 7

参数
function(total, item, index, arr) 必需。 数组中每个元素需要调用的函数。
initialValue 可选。传递给函数的初始值
函数参数
total 必需。初始值,或者计算结束后的值。
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
返回计算结果。

4.filter方法返回一个新的数组,新数组中的元素是筛选出的指定数组中符合条件的项。

array.filter(function(item, index, arr){
    return item > 1
}, thisValue)

var arr = [1, 2, 3]
arr.reduce(function(item){
    return item > 1
})
// [2, 3]

参数
function(item, index, arr) 必需。 数组中每个元素需要调用的函数。
thisValue 可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值
函数参数
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
返回新数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。

5.every方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
array.every(function(item, index, arr){
    return item > 1
}, thisValue)

var arr = [1, 2, 3]
arr.every(function(item){
    return item > 1
})
// false

参数
function(item, index, arr) 必需。 数组中每个元素需要调用的函数。
thisValue 可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值
函数参数
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
布尔值。如果所有元素都通过检测返回 true,否则返回 false。

6.some方法使用指定函数检测数组中的所有元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。
array.some(function(item, index, arr){
    return item > 1
}, thisValue)

var arr = [1, 2, 3]
arr.some(function(item){
    return item > 1
})
// true

参数
function(item, index, arr) 必需。 数组中每个元素需要调用的函数。
thisValue 可选。传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值
函数参数
item 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
返回值
布尔值。如果数组中有元素满足条件返回 true,否则返回 false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值