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了

相关推荐
無限進步D3 小时前
Java 运行原理
java·开发语言·入门
是苏浙3 小时前
JDK17新增特性
java·开发语言
阿里加多6 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood6 小时前
java中`==`和`.equals()`区别
java·开发语言·python
小李子呢02117 小时前
前端八股性能优化(2)---回流(重排)和重绘
前端·javascript
zs宝来了7 小时前
AQS详解
java·开发语言·jvm
程序员buddha7 小时前
深入理解ES6 Promise
前端·ecmascript·es6
吴声子夜歌8 小时前
ES6——Module详解
前端·ecmascript·es6
telllong8 小时前
Python异步编程从入门到不懵:asyncio实战踩坑7连发
开发语言·python
吴声子夜歌9 小时前
Vue3——Vue实例与数据绑定
前端·javascript·vue.js