const arr = [1,2,3,4,5,6]
第一种:for循环
for (let i = 0i<arr.lengthi++){
console.log(arr[i])
}
for(j=0,len=arr.lengthj<lenj++){}//这种方法基本上是所有循环遍历方法中性能最高的一种
第二种 for of (需要ES6支持) 性能要好于forin,但仍然比不上普通for循环
for (let value of arr){
console.log(value)
}
第三种 for in 它的效率是最低的
for (let i in arr){
console.log(arr[i])
}
第四种 foreach() 实际上性能比普通for循环弱
1、箭头函数写法
arr.forEach(value =>{
console.log(value)
})
2、普通函数写法
arr.forEach(function(value){
console.log(value)
})
第五种 entries()
for (let [index, value] of arr.entries()) {
console.log(value)
}
第六种 keys()
for (let inx of arr.keys()){
console.log(arr[inx])
}
第七种 reduce()
1、箭头函数
arr.reduce((pre,cur)=>{
console.log(cur)
})
2、普通函数
arr.reduce(function(pre,cur){
console.log(cur)
})
第八种 map() 但实际效率还比不上foreach
1、箭头函数
arr.map(value=>{
console.log(value)
})
2、普通函数
arr.map(function(value){
console.log(value)
})
第九种 values()
for (let value of arr.values()){
console.log(value)
}
JS的 for 循环主要包含如下几种: for(let i = 0i <leni++) , for-in , for-of , for-each 。
至于第一种 for 循环,地球人都会,按下不表。难点在于 for-in , for-of , for-each 直接有什么区别,看起来都差不多的样子。
一句话概述 for-in 与 for-of : for-in 遍历得到的是 key 值,适用于对象的遍历, for-of 得到的是 value 值,适合数组的遍历。只要有 iterator 接口的数据结构,都可以使用 for-of 循环,包括: Array, Map, Set, String, arguments对象, Nodelist对象
获得的是属性值
获得的是对象的索引值
遍历的时候不要用这个!
当给数组的原型添加属性时,for in 会遍历到原型链上的属性
这时候只要判断是不是本身所有的属性就行了
传入匿名的回调函数,匿名函数的参数为:当前项item,索引index(可省),当前数组array(可省)
for-of这个方法避开了for-in循环的所有缺陷
与forEach()不同的是,它可以正确响应break、continue和return语句
map遍历与foreach类似,支持使用return语句,支持return返回值
参考链接 link