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了

相关推荐
OpenTiny社区13 小时前
TinyPro v1.4 空降:Spring Boot 集成,后端兄弟也能愉快写前端!
前端·javascript·vue.js
袁袁袁袁满13 小时前
Python使用uuid生成唯一密钥uid详细教程
开发语言·python·uuid·唯一密钥uid
Logan Lie13 小时前
Go 反射(Reflection)详解:从入门到实践
开发语言·后端·golang
爱装代码的小瓶子13 小时前
【c++进阶】c++11下类的新变化以及Lambda函数和封装器
java·开发语言·c++
m0_7482500313 小时前
C++ 标准库概述
开发语言·c++
FAFU_kyp13 小时前
Rust 所有权(Ownership)学习
开发语言·学习·rust
古迪红尘13 小时前
el-tree 采用懒加载方式,怎么初始化就显示根节点和下级节点
前端·javascript·vue.js
superman超哥13 小时前
Rust 异步性能的黑盒与透视:Tokio 监控与调优实战
开发语言·后端·rust·编程语言·rust异步性能·rust黑盒与透视·tokio监控与调优
Aotman_13 小时前
Vue el-table 字段自定义排序(进阶)
前端·javascript·vue.js·elementui·前端框架·ecmascript
lkbhua莱克瓦2413 小时前
进阶-存储对象2-存储过程上
java·开发语言·数据库·sql·mysql