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了

相关推荐
沐知全栈开发3 分钟前
CSS 下拉菜单
开发语言
keyborad pianist19 分钟前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
坚持就完事了20 分钟前
Python的类型注解
开发语言·python
wjs202430 分钟前
HTML URL 编码
开发语言
wjs202435 分钟前
Lua 循环
开发语言
Evand J44 分钟前
matlab GUI制作界面的一些笔记(入门)
开发语言·笔记·matlab
我是大猴子44 分钟前
Java面经
java·开发语言
Never_Satisfied1 小时前
在c#中,如何删除字符串中的第x个字符
开发语言·c#
_nirvana_w_1 小时前
Qt项目链接库时遇到的坑:-l选项的正确用法
开发语言·c++·qt·qt框架·elawidgettools
froginwe111 小时前
数据访问对象模式(Data Access Object Pattern)
开发语言