JS-- for...in和for...of

1,for...in

用于遍历对象的可枚举属性(包括原型链上的),返回的是属性名(字符串)。

也可以遍历数组,但返回的是索引(字符串类型),不推荐用于数组。

2,for..of

用于遍历可迭代对象(如数组、字符串、Map、Set等),返回的是每一项的值。

不能直接用于普通对象(非可迭代对象)。

3,举例:

3.1 for...in遍历对象。不想要遍历原型链上的属性和方法通过obj.hasOwnProperty过滤掉

javascript 复制代码
for (const key in data) {
    if (data.hasOwnProperty(key)) {
        const value = data[key];
        if (value !== undefined) {
            items.push(`"${key}":${stringify(value)}`);
        }
    }
}

3.2 用for...of替代for...in,那么通过Object.keys(obj),拿到所有的对象的key

你可以用 for (const key of Object.keys(obj)) 替换 for...in,这样更安全,只遍历自有属性。

javascript 复制代码
for (const key of Object.keys(data)) {
    const value = data[key];
    if (value !== undefined) {
        items.push(`"${key}":${stringify(value)}`);
    }
}

for...in 用于遍历对象的属性名,返回字符串(包括原型链上的)。

for...of 用于遍历可迭代对象的值,不能直接用于普通对象。

相关推荐
donecoding29 分钟前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
我命由我1234530 分钟前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
风骏时光牛马34 分钟前
Raku正则匹配与数据批量处理实操案例
前端
Halo_tjn35 分钟前
Java Set集合相关知识点
java·开发语言·算法
nbwenren37 分钟前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川39 分钟前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
Linsk40 分钟前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
当时只道寻常44 分钟前
浏览器文本复制到剪贴板:企业级最佳实践
javascript
许彰午1 小时前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试