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了

相关推荐
我命由我123451 小时前
React Router 6 - 概述、基础路由、重定向、NavLink、路由表
前端·javascript·react.js·前端框架·ecmascript·html5·js
telllong1 小时前
BeeWare:Python原生移动应用开发
开发语言·python
yaaakaaang1 小时前
(四)前端,如此简单!---Promise
前端·javascript
海海不瞌睡(捏捏王子)1 小时前
C#知识点概要
java·开发语言·1024程序员节
aini_lovee2 小时前
C# 实现邮件发送源码(支持附件)
开发语言·javascript·c#
_MyFavorite_2 小时前
JAVA重点基础、进阶知识及易错点总结(10)Map 接口(HashMap、LinkedHashMap、TreeMap)
java·开发语言
charlie1145141912 小时前
通用GUI编程技术——Win32 原生编程实战(十六)——Visual Studio 资源编辑器使用指南
开发语言·c++·ide·学习·gui·visual studio·win32
英俊潇洒美少年2 小时前
js 进程与线程的讲解
javascript
wheelmouse77883 小时前
网络排查基础与实战指南:Ping 与 Telnet
开发语言·网络·php
敲代码的嘎仔3 小时前
Java后端开发——真实面试汇总(持续更新)
java·开发语言·程序人生·面试·职场和发展·八股