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

相关推荐
kite012112 分钟前
浏览器工作原理06 [#]渲染流程(下):HTML、CSS和JavaScript是如何变成页面的
javascript·css·html
крон14 分钟前
【Auto.js例程】华为备忘录导出到其他手机
开发语言·javascript·智能手机
zh_xuan1 小时前
c++ 单例模式
开发语言·c++·单例模式
老胖闲聊1 小时前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1181 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
曹勖之2 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
豆沙沙包?2 小时前
2025年- H77-Lc185--45.跳跃游戏II(贪心)--Java版
java·开发语言·游戏
军训猫猫头3 小时前
96.如何使用C#实现串口发送? C#例子
开发语言·c#
coding随想3 小时前
JavaScript ES6 解构:优雅提取数据的艺术
前端·javascript·es6
年老体衰按不动键盘3 小时前
快速部署和启动Vue3项目
java·javascript·vue