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了

相关推荐
一株菌子12 分钟前
10.12 总结
开发语言·python
枷锁—sha23 分钟前
【CTFshow-pwn系列】03_栈溢出【pwn 051】详解:C++字符串替换引发的血案与 Ret2Text
开发语言·网络·c++·笔记·安全·网络安全
沙白猿29 分钟前
【TJXT】Day3
java·开发语言
一个处女座的程序猿O(∩_∩)O38 分钟前
Python面向对象的封装特性详解
开发语言·python
zhaoyin199440 分钟前
python基础
开发语言·python
颜酱42 分钟前
差分数组:高效处理数组区间批量更新的核心技巧
javascript·后端·算法
Joker Zxc1 小时前
【前端基础(Javascript部分)】2、JavaScript的变量和数据类型
开发语言·前端·javascript
罗超驿1 小时前
JavaSE高频答疑:内部类同名变量访问全解 + Comparable与Comparator核心区别
java·开发语言·idea
宇木灵1 小时前
C语言基础-十一、递归与分治(完结)
c语言·开发语言·学习·算法
geovindu1 小时前
python: Template Method Pattern
开发语言·python·设计模式·模板方法模式