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 用于遍历可迭代对象的值,不能直接用于普通对象。

相关推荐
码匠许师傅7 分钟前
【C++ 面试真题】19. 聊聊 C++ 的迭代器
开发语言·c++·面试
AI情绪识别开源11 分钟前
检信ALLEMOTION VibrationAI 2.4.0 12维度情绪识别开源源代码
开发语言·python
Dovis(誓平步青云)12 分钟前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
qeen8719 分钟前
【数据结构】红黑树的算法原理解析与实现
开发语言·数据结构·c++·算法·红黑树
Data_Journal21 分钟前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
计算机魔术师31 分钟前
我看了这个更新,把原来的检索方案推翻了
前端
zhanghaha13141 小时前
HTML系列教程:3_HTML 基础标签 — 标题、段落、超链接、图像
前端·html
李高钢1 小时前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
Logintern091 小时前
什么时候应该用多进程什么时候用多线程呢?
开发语言·python
long3161 小时前
枚举(Enums)
java·开发语言·数据库