欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

for...in,for...of,forEach

程序员文章站 2024-03-25 14:30:52
...

参考:
https://blog.csdn.net/Seven521m/article/details/83827844

遍历对象的方法:
for...inObject.keys(obj)Object.getOwnPropertyNames(obj)Reflect.ownKeys(obj)
参考:https://blog.csdn.net/weixin_38788947/article/details/81840087

for…in,for…of,forEach的区别:

1.遍历对象
for...in:输出索引
let obj = {
    a: 1,
    b: 2,
    c: 3
};

for (let key in obj) {
    console.log(key, obj, obj.key, obj[key]);
}

// a {a: 1, b: 2, c: 3} undefined 1
// b {a: 1, b: 2, c: 3} undefined 2
// c {a: 1, b: 2, c: 3} undefined 3

for..of && forEach:不支持。

2.遍历数组
let arr = [1,'参数2',3]
for..in:输出 索引
let arr = [1,'参数2',3];

for(let i in arr){
    console.log(i,arr[i],arr.i)
}

// 0 1 undefined
// 1 参数2 undefined
// 2 3 undefined
for..of:输出
let arr = [1,'参数2',3];
for(let i of arr){
    console.log(i)
}

// 1
// 参数2
// 3
forEach:输出 值&索引
let arr = [1,'参数2',3];

arr.forEach((item,index)=>{
    console.log(item,index)
})

// 1 0
// 参数2 1
// 3 2
3、遍历的数组或对象包含原型属性或者自定义属性时
遍历时能否中断循环

for..in:无法中断
for..of:可以使用break中断
forEach:无法中断