ES6, JS中的各种常用的数组遍历方法总结
- find
- findIndex
- filter
- map
- reduce
- for in
- for of
代码如下:
var a = [1,2,3,4]
//find和findIndex方法
var b = a.find(function(item){ //最后返回第一个大于0的数值
return item>2
})
var c = a.findIndex(function(item){
return item==3 //最后返回第一个=3的元素的下标值
})
console.log(b+' '+c) //3 2
//foreach方法
a.forEach(function(item){
console.log(item) //没有返回值,只能依次输出,可以再里面处理一些逻辑
})
//filter方法
var d = a.filter(function(item,index){
return item > 1 //返回大于一的所有元素,并装在一个新的数组返回
})
console.log(d) //[2,3,4]
//map方法
var e = a.map(function(item,index){
return item*2 //对每一个元素*2,装在一个新的数组返回
})
console.log(e) //[4,6,8]
//reduce方法(pre是下次函数返回的值,第一次是第一个元素,也就是a[0],而cur是第二个元素,也就是a[1])
var f = a.reduce(function(pre,cur,index,arr){
return pre+cur //这里返回的值会被下一次pre捕捉
})
console.log(f) //10
//for in方法
for(var i in a){
console.log(i) //0,1,2,3
}
//for of方法
for(var i of a){
console.log(i) //1,2,3,4
}
总结:
- find是返回第一次符合函数条件的数组里的元素
- findIndex是返回第一次符合函数条件的数组下标
- foreach作用不大,没有返回值,一般用于输出
- filter是是返回符合函数条件的所有元素,然后装在新数组返回
- map和filter差不多,可以操作每一个元素再装在新数组返回
- reduce的每一次返回值都是下次pre的值,非常强大。