数组遍历是必不可少的最常用的东西,总结es6数组的遍历方法,如下:
1:老方法,通过for循环
//遍历数组元素
for(let i=0;i<arr.length;i++){
console.log('key:'+i)
console.log('value'+i)
}
2:通过for in方法
//通过for in 遍历数组
log('for in 遍历数组')
for(let key in arr){
log('key:'+key)
log('value:'+arr[key])
}
注:for in 遍历的是数组的key,然后我们可以通过key获取value
3:通过forEach遍历数组
log('forEach遍历数组')
arr.forEach((item,index)=>{
log('key:'+index)
log('value:'+item)
})
注:回调函数参数一是value,参数二是key。不支持结束遍历,跳过
4:通过for of遍历数组
log('for of遍历数组')
for(let value of arr){
log('value:'+value)
}
注:for of遍历的是数组的value而非key。可以正确响应break、continue和return语句
---for in与for of的区别:
1:for...in遍历出的是key,for...of遍历出的是value
2:for...in更适用于遍历对象,推荐在遍历对象属性时使用for...in,在遍历数组时使用for...of
3:for...of
是ES6新引入的特性,修复了ES5引入的for...in
的不足
4:for...of
不能循环普通的对象,需要通过和Object.keys()
搭配使用
let pet ={
name:'朱雀',
lvl:120,
desc:'南方星圣',
skill:['南明离火','三昧真火']
}
log('通过for...in遍历对象')
for(let key in pet){
log(key+':'+pet[key])
}
log('通过for...of遍历对象')
for(let value of Object.keys(pet)){
log(pet[value])
}