最开始接触的遍历for 通过下标获取数组每一项的值
var num=[2,5,7]; for(let i=0;i<num.length;i++) { console.log(num[i]) } /*打印2 5 7*/
forEach遍历数组 不能直接中止循环(break,return)
var num=[2,5,7]; num.max='this is max'; num.forEach( num => { console.log(num) }) /*打印2 5 7*/ num.forEach( num => { if(num == 5){ break; Illegal break statement 报错 } console.log(num) })
for..in遍历对象和数组 由于可以遍历出所有的可枚举属性,所以在数组上不建议使用
var num=[2,5,7]; num.max='this is max'; for(let index in num){ console.log(num[index]) }/*打印 2 5 7 'this is max' */
var arr=[{city:'厦门'},{city:'福州'},{city:'三明'},{city:'泉州'}]; for(let index in arr){ if(arr[index].city === '三明') break; /*return 会报错*/ console.log(arr[index].city) }/*打印 厦门 福州*/
遍历对象
var obj={province:'福建',city:'厦门',block:'湖里'}; for(let item in obj){ console.log(item) }/*打印 province city block*/
for..of 可以中止循环,同时又避开了for-in 的缺点(遍历所有可枚举属性),for of 可遍历类型
- 数组
- 大多数类数组对象:如DOM的NodeList对象
- 字符串
- 也支持map和set对象的遍历
var num=[2,5,7]; num.max='this is max'; for(let item of num){ console.log(item) }/*打印 2 5 7*/
for(let item of num){ if(item == 5) break; console.log(item) }/*打印 2*/
forEach for..of遍历数组,for..in遍历对象
for..in和for 都是通过下标索引来获取值,froEach和for..of通过获取指针指向当前value值