数组的循环
说到数组,我们先考虑到的肯定是循环,其中,ES5就有很多的数组循环方法,早就出现了。只是我们还没掌握,下面我就详细介绍一下。
//以下方法都可以接收三个参数,分别是当前值,当前下标,和当前数组(接收的参数是一致的,只是方法不一样)
1.arr.forEach()
// forEach 方法其实就是来替换普通的for循环的,他是一个回调函数,每循环一次,回调一次。
let arr = ["apple","bananer","marry"];
arr.forEach(function(val,index,arr){
console.log(val,index,arr)
})
2.arr.map()
注意:map方法会生成一个新数组。
//map方法正常情况下是配合return使用的,如果不使用return他的作用是和forEach的作用一样的。
arr.map((val,index,arr)=>{
console.log(val,index,arr)
})
打印结果和forEach一样。
//map的主要作用其实就是重新整理你的数据结构,下面看一个小例子
//这个例子里面我,在不改变原数组的情况下,返回了age这个参数大于等于16 的对象,return到新数组里面。
let arr = [
{
name:"小明",
age:"18"
},
{
name:"小红",
age:"16"
},
{
name:"小李",
age:"13"
},
];
let newArr = arr.map((val,index,arr)=>{
if(val.age >= 16){
return val
}else{
return false
}
})
console.log(newArr)
3.arr.filter()
//filter顾名思义。就是过滤的意思,过滤掉不想要。并返回一个新数组,也是需要配合return使用的。太简单,就不一一做示例了。
4.arr.some()
//some方法类似查找,数组里面某一个元素符合条件,就返回true
5.arr.every()
//every方法,数组里面所有元素符合条件,才返回true
5.arr.reduce()
//reduce方法,正常开发的时候用的很少,不过也需要知道一下。一般用于求数组的和。它的计算顺序从左往右开始计算,它接收的参数也和其他方法不一样,一共接收4个参数:
1.prev :前一个
2.cur:当前循环的元素
3.当前的索引
4.当前循环的数组
let arr = [1,2,3,4,5,6,7,8,9,10];
let resArr = arr.reduce((prev,cur,index,arr) =>{
return prev+cur;
})
console.log(resArr)
打印结果:55
6.arr.reduceRight()
//reduceRight方法,它的计算顺序是从右往左进行计算的方法,具体什么时候使用,不详。
以上就是ES5里面新增数组循环方法了,大部分都是非常方便且常用的,希望大家,尽量多用这些方法,去处理数组。