javascript给对象添加迭代器

迭代器是啥就自行百度了

为啥for...of可以遍历数组,为啥不能遍历对象,就是for...of会调用迭代器,而数组是内置了迭代器了,而对象没有内置,所以直接使用for...of遍历对象会报错,因此只用在对象的原型上面自定义一个迭代器就好了

手动添加迭代器

javascript 复制代码
    Object.prototype[Symbol.iterator] = function* iterEntries() {
    let keys = Object.keys(this);
    for (let i = 0; i < keys.length; i++) {
        let key = keys[i];
        yield this[key];
    }
}

这里的yield是每次迭代返回的值,你可以设置为1,这样for...of对象的时候,就全是1了

相关推荐
a诠释淡然7 小时前
C++模板元编程—现代C++的黑魔法
开发语言·c++
charlie1145141918 小时前
现代C++工程:constexpr 基础:编译期求值的艺术
开发语言·c++
十九画生8 小时前
从同步到异步:重新理解 JavaScript 的执行机制
javascript
半个落月8 小时前
JavaScript 同步异步与 Promise 详解 —— 从 Event Loop 到手写 sleep
javascript
MemoriKu8 小时前
Flutter 相册 APP 视频模态稳定化实战:从视频抽帧、Embedding 元数据到 Android 真机启动修复
android·开发语言·前端·flutter·架构·音视频·embedding
触底反弹8 小时前
深入理解 JavaScript 同步与异步:从 Event Loop 到 async/await
javascript
SilentSamsara8 小时前
特征工程系统方法论:编码、分箱、交互特征与特征选择
开发语言·人工智能·python·机器学习·青少年编程·信息可视化·pandas
morning_judger8 小时前
Agent开发系列(十)-知识库建设(架构总览)
开发语言·人工智能
ch.ju8 小时前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
浮生望8 小时前
JavaScript 异步编程核心:从同步阻塞到 Promise 事件循环
javascript·promise