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了

相关推荐
Amctwd几秒前
【JavaScript】JS 异步 Promise 解析
开发语言·前端·javascript
JAVA面经实录9178 分钟前
JVM高频面试总结(背诵完整版)
java·开发语言·jvm
沪漂阿龙18 分钟前
Java JVM 面试题详解:JVM运行原理、内存模型、堆栈方法区、GC垃圾回收、JIT编译、类加载机制与线上调优全攻略
java·开发语言·jvm
小碗羊肉20 分钟前
Maven高级
java·开发语言·maven
不知名的老吴21 分钟前
C++ 中函数对象的形式概述
开发语言·c++
放下华子我只抽RuiKe528 分钟前
React 从入门到生产(一):JSX 与组件思维
前端·javascript·人工智能·pytorch·深度学习·react.js·前端框架
Shan120531 分钟前
C++中函数对象之重载 operator()
开发语言·c++·算法
HelloWorld1024!40 分钟前
c++核心之万字详解 * 和 & 所有用法(指针、引用、取地址、解引用、常量修饰)
开发语言
Legendary_0081 小时前
解析 PD Sink 与 LDR6500U:Type-C 取电的核心密码
c语言·开发语言
冴羽yayujs1 小时前
JavaScript 9 个先有库再有 API 的故事
开发语言·javascript·ecmascript