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了

相关推荐
JanelSirry19 分钟前
如何查看java死锁?具体怎么做,怎么避免
java·开发语言
小龙报29 分钟前
《算法通关指南之C++编程篇(5)----- 条件判断与循环(下)》
c语言·开发语言·c++·算法·visualstudio·学习方法·visual studio
郝学胜-神的一滴31 分钟前
C++ STL(标准模板库)深度解析:从基础到实践
linux·服务器·开发语言·c++·算法
LL_break35 分钟前
线程3 JavaEE(阻塞队列,线程池)
java·开发语言·java-ee·线程·线程池·阻塞队列
Fortunate Chen40 分钟前
初识C语言12. 结构体(自定义类型的核心工具)
c语言·开发语言·笔记
摸着石头过河的石头1 小时前
错误处理:构建健壮的 JavaScript 应用
前端·javascript
刚入坑的新人编程1 小时前
算法训练.17
开发语言·数据结构·c++·算法
汤姆yu1 小时前
基于python大数据深度学习的酒店评论文本情感分析
开发语言·python·深度学习
狂团商城小师妹1 小时前
JAVA无人共享台球杆台球柜系统球杆柜租赁系统源码支持微信小程序
java·开发语言·微信小程序·小程序
Fortunate Chen1 小时前
初识C语言13.自定义类型(联合体与枚举)
c语言·开发语言