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了

相关推荐
测试员周周几秒前
【Appium 系列】第10节-手势操作实战 — 滑动、拖拽、缩放与轻拂
linux·服务器·开发语言·人工智能·python·appium·pytest
雪度娃娃3 分钟前
转向现代C++——在创建对象时注意区分()和{}
开发语言·c++
铅笔小新z5 分钟前
【C语言】数组详解
c语言·开发语言
摇滚侠8 分钟前
Java 饿汉式 单例模式
java·开发语言·单例模式
欧阳天风8 分钟前
electron播放本地音乐的问题
前端·javascript·electron
lbb 小魔仙11 分钟前
工业数据困局的破局者:DolphinDB 如何让海量时序数据真正“跑“出价值
开发语言·人工智能·python·langchain
枫叶丹413 分钟前
【HarmonyOS 6.0】Device Security Kit安全审计阻断功能深度解析
开发语言·安全·华为·harmonyos
介一安全13 分钟前
【漏洞学习】聊天机器人安全漏洞实战:服务器端JavaScript注入探秘
javascript·安全性测试·聊天机器人
读书札记202214 分钟前
C++ switch..case语句中变量跨域问题探讨及解决方法
开发语言·c++
一轮弯弯的明月14 分钟前
Spring AOP编程
java·开发语言·spring boot·笔记·spring aop·学习心得