数组遍历for forEach for..in for..of

时间:2025-01-03 12:34:32

最开始接触的遍历for 通过下标获取数组每一项的值

var num=[,,];
for(let i=;i<num.length;i++) {
console.log(num[i])
} /*打印2 5 7*/

forEach遍历数组 不能直接中止循环(break,return)

var num=[,,];
num.max='this is max'; num.forEach( num => {
console.log(num)
}) /*打印2 5 7*/ num.forEach( num => {
if(num == ){
break; Illegal break statement 报错
}
console.log(num)
})

for..in遍历对象和数组 由于可以遍历出所有的可枚举属性,所以在数组上不建议使用

var num=[,,];
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=[,,];
num.max='this is max'; for(let item of num){
console.log(item)
}/*打印 2 5 7*/
for(let item of num){
if(item == ) break;
console.log(item)
}/*打印 2*/

forEach for..of遍历数组,for..in遍历对象

for..in和for 都是通过下标索引来获取值,froEach和for..of通过获取指针指向当前value值