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

相关推荐
txinyu的博客4 分钟前
C++ 模板元编程 (TMP)
开发语言·c++
数据大魔方4 分钟前
【期货量化实战】豆粕期货量化交易策略(Python完整代码)
开发语言·数据库·python·算法·github·程序员创富
dragoooon349 分钟前
C++ 从零实现Json-Rpc 框架
开发语言·c++·rpc
阿珊和她的猫10 分钟前
深入理解 React 中的 Render Props 模式
前端·react.js·状态模式
sheji341612 分钟前
【开题答辩全过程】以 基于Java的校内美食推荐系统的设计与实现为例,包含答辩的问题和答案
java·开发语言·美食
Mr -老鬼18 分钟前
Rust 知识图-谱基础部分
开发语言·后端·rust
码农幻想梦21 分钟前
实验7 知识表示与推理
开发语言·人工智能·python
我还可以再学点21 分钟前
C语言常见函数
c语言·开发语言
森叶23 分钟前
Cookie 和 Token 的应用场景优势比较 & Cookie 不能使用的场景补充
javascript
IT_陈寒23 分钟前
SpringBoot 3.0实战:10个高效开发技巧让你的启动时间减少50%
前端·人工智能·后端