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了

相关推荐
csbysj202024 分钟前
jQuery 删除元素
开发语言
xxy-mm27 分钟前
Javascript 中的继承
开发语言·javascript·ecmascript
quikai19813 小时前
python练习第二组
开发语言·python
1024肥宅3 小时前
手写 EventEmitter:深入理解发布订阅模式
前端·javascript·eventbus
AI视觉网奇3 小时前
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
开发语言·c++·算法
wjs20243 小时前
并查集快速合并
开发语言
free-elcmacom3 小时前
MATLAB与高等数学<1>一道曲面积分题的几何直观
开发语言·数学建模·matlab·高等数学
LaoZhangGong1233 小时前
深度学习uip中的“psock.c和psock.h”
c语言·开发语言
Tony Bai3 小时前
Go 安全新提案:runtime/secret 能否终结密钥残留的噩梦?
java·开发语言·jvm·安全·golang
pengzhuofan3 小时前
Java演进与与工程师成长
java·开发语言