【ES6】for, for in , for of

for循环

    for (let index = 0; index < array.length; index++) {
        const element = array[index];            
    }

for in

  1. for in 遍历数组
    // for in 遍历数组的每个下标
    for (const index in array) {
        const element = array[index]    // 拿到数组中的每一项进行操作
    }
  1. for in 遍历对象
    // for in 遍历对象中的每个key
    // 对象object的属性访问器有点号.和方阔括号[]两种
    for (let key in object) {
        const element = object[key]     // 拿到对象中的每一个键key对应的值value
    }
  1. for in 会遍历到对象上的原型方法,如果不想遍历原型方法和属性值,可以在循环内部判断一下,hasOwnPropery方法可以判断某属性是否是该对象的实例属性
    for (let key in object) {
        if (Object.hasOwnProperty.call(object, key)) {
            const element = object[key];
        }
    }


for of

for of 遍历数组

具备iterator接口的数据:Array,Arguments,Set,Map,String,TypedArray,Nodelist

只有有iterator接口的数据,才能使用for of遍历,Object是不行的。

    // for of 遍历数组的迭代器
    for (let iterator of array) {
        // 数组中每个迭代器就是数组中的每一项
        const element = iterator        // 拿到数组中的每一项进行操作
    }

总结

使用for in会遍历数组所有的可枚举属性,包括原型。例如原型方法method和name属性

所以for in更适合遍历对象,不要使用forin遍历数组。当不希望遍历对象原型的方法和属性时使用hasOwnPropery判断一下

for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句

for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环或使用Object.keys()方法:

posted @   wanglei1900  阅读(282)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示