数组的迭代方法
除了for循环外,数组还有其他的一些迭代方法,分别有forEach()、map()、every()、some()、filter()、reduce()、find()、findIndex()…等等,接下来我将会对这些方法逐一介绍。
1、forEach()
var arr = [1, 2, 3, 4, 5]
arr.forEach(function (item, index, arr) {
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
console.log(item);
console.log(index);
console.log(arr);
})
forEach()可以对数组中的元素进行遍历,但是forEach()没有返回值,也没有结束语句。
2、map()
var arr = [1, 2, 3, 4, 5]
var itemArr = arr.map(function (item, index, arr) {
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
return item
return item + 1
})
console.log(itemArr);
map()也可以对数组进行遍历,并且map()有返回值,它会返回一个新数组。
3、every()
var arr = [1, 2, 3, 4, 5]
var arrNew1 = arr.every(function (item,index, arr) {
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
return item > 2
})
console.log(arrNew1);
every()有返回值,其返回值为布尔值。它可以判断回调函数中的表达式是否满足,如果全部满足,返回值就是true,只要有一个不满足就是false。
4、some()
var arr = [1, 2, 3, 4, 5]
var arrNew1 = arr.some(function (item,index, arr) {
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
console.log(item);
// return 判断语句
return item > 2
})
console.log(arrNew1);
some()与every()类似,返回值为布尔值,但是some()是判断回调函数中的表达式是否有一个满足,如果至少一个满足,返回值就是true,如果都不满足,返回false。
5、filter()
var arr = [1, 2, 3, 4, 5]
var arrNew2 = arr.filter(function (item,index, arr) {
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
return item > 2
})
console.log(arrNew2);
filter()相当于一个过滤器,它可以筛选出满足回调函数中的表达式的值,并将这些值以一个新数组的形式返回。
6、reduce()
var arr = [1, 2, 3, 4, 5]
var arrNew3 = arr.reduce(function (value,item,index,arr) {
// value:每次计算后的值
// item:数组中的元素
// index:元素的索引
// arr:被遍历的当前数组
return value + item
},10)
console.log(arrNew3);
reduce()相当于一个计算器,其中value是每进行一次运算后的值。
reduce()中的参数除了回调函数,还有一个number类型的值,他的含义是:计算器以这个number值为初始值进行运算。
7、find()
var arr = [1, 2, 3, 4, 5]
var arrNew4 = arr.find(function (item, index, arr) {
return item > 2
})
console.log(arrNew4);
find()可以找出数组中符合条件的第一个元素,并返回该值。
8、findIndex()
var arr = [1, 2, 3, 4, 5]
var arrNew5 = arr.findIndex(function (item, index, arr) {
return item > 2
})
console.log(arrNew5);
findIndex()可以返回符合条件的第一个元素的索引。