forEach()
forEach
方法迭代数组的每一个元素,并对每个元素都调用一次我们指定的函数。就是说,方法为每个数组元素调用一次函数(回调函数)
返回值:undefined
注意:forEach()
方法并未提供一种提前终止迭代的方式。就是说,在这里没有与for循环中的break语句对等的机制。
格式
let arr = [1,2,3]
arr.forEach(function(value,index,array){
console.log(value,index,array.length)
})
// 1 0 3
// 2 1 3
// 3 2 3
参数:
value:数组元素
index:数组索引
array:数组
map()
map()
方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。就是说,方法通过对每个数组元素执行函数来创建新数组。
返回值:返回一个新数组。
注意:
- 方法不会更改原始数组。
- 方法不会对没有值的数组元素执行函数。
格式
let arr = [1,2,3,4]
arr1 = arr.map(function(value,index,array){
return value + 2
})
console.log(arr1)//[3,4,5,6]
参数:
value:数组元素
index:数组索引
array:数组
filter()
filter()
方法创建一个包含通过测试的数组元素的新数组,不会改变原数组。
返回值:一个新数组
格式
let arr = [1,2,3,4]
arr1 = arr.filter(function(value,index,array){
return value > 2
})
console.log(arr1)
//[3,4]
参数:
value:数组元素
index:数组索引
array:数组
find()
find
方法返回通过测试函数的第一个数组元素的值。就是说,方法返回数组中满足提供的测试函数的第一个元素的值。(查找)(短路遍历)
返回值:返回检测通过的第一个数组中的元素,没有就返回nudefined
格式
let arr = [1,3,6,3,7]
arr1 = arr.find(function(value,index,array){
return value > 3
})
console.log(arr1)//6
参数:
value:数组元素
index:数组索引
array:数组
findIndex()
findIndex()
查找索引 (短路遍历)
返回值:找不到返回-1
格式
let arr = [1,3,6,3,7]
arr1 = arr.findIndex(function(value,index,array){
return index=2
})
console.log(arr1)//6
参数:
value:数组元素
index:数组索引
array:数组
every()
every()
:方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。就是说,方法检查所有数组元素是否通过测试,只要有一个没通过,则返回false
(短路遍历)
返回值:只要有一个没通过false
,全部通过返回true
格式
let arr = [1,2,4,7,5]
arr1 = arr.every(function(value,index,array){
return value < 4
})
console.log(arr1)
参数:
value:数组元素
index:数组索引
array:数组
some()
some()
方法检查某些数组值是否通过了测试。就是说,方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试,有一个通过,就返回true
(短路遍历)
返回值:全部不通过返回false
,有一个通过返回true
格式
let arr =[1,2,3,4,5]
arr1 = arr.some(function(value,index,array){
return value > 4
})
console.log(arr1)//true
参数:
value:数组元素
index:数组索引
array:数组
reduce()
reduce()
通过函数求和数组中每一个元素,并返回结果。
用途:计算数组所有元素的总和
返回值: 数组元素的和
注意:方法在数组中从左到右工作
格式
求数组元素和示例:
arr.reduce(function(total,value,index,array){
return total + value
},item)
let arr = [5,5,10,5]
arr1 = arr.reduce(function(total,value,index,array){
return total + value
})
console.log(arr1)//25
reduce()
方法可以接受初始值
let arr = [5,5,10,5]
arr1 = arr.reduce(function(total,value,index,array){
return total + value
},100)
console.log(arr1)//125
参数:
total: 总数(存储求和的变量)
value:数组元素
index:数组索引
array:数组
this:初始值,一般为0
reduceRight()
reduceRight()
方法接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。
返回值: 数组元素的和
注意:方法在数组中从右到左工作
格式
求数组元素和示例:
let arr = [1,4,5]
arr1 = arr.reduceRight(function(total,value,index,array){
return total + value
})
console.log(arr1)//10
参数:
total: 总数(初始值/先前返回的值)
value:数组元素
index:数组索引
array:数组