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了

相关推荐
淮北49411 分钟前
pip虚拟环境包的问题
开发语言·python·pip
dear_bi_MyOnly14 分钟前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
常年游走在bug的边缘15 分钟前
掌握JavaScript作用域:从函数作用域到块级作用域的演进与实践
开发语言·前端·javascript
jiaguangqingpanda20 分钟前
Day36-20260204
java·开发语言
极致♀雨25 分钟前
vue2+elementUI table表格勾选行冻结/置顶
前端·javascript·vue.js·elementui
ctyshr26 分钟前
C++编译期数学计算
开发语言·c++·算法
打码的猿29 分钟前
Qt对话框不锁死主程序的方法
开发语言·qt
林shir32 分钟前
3-15-前端Web实战(Vue工程化+ElementPlus)
前端·javascript·vue.js
努力写代码的熊大43 分钟前
c++异常和智能指针
java·开发语言·c++
Yvonne爱编码1 小时前
JAVA数据结构 DAY5-LinkedList
java·开发语言·python