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了

相关推荐
Leon21 分钟前
新手引导 intro.js 的使用
前端·javascript·vue.js
牛奶1 小时前
JS随笔:浏览器 API(DOM 与 BOM)
前端·javascript·面试
牛奶1 小时前
JS随笔:异步编程与事件循环
前端·javascript·面试
牛奶1 小时前
JS随笔:数据结构与集合
前端·javascript·面试
小陆猿2 小时前
股票实时行情Echarts动态图表
前端·javascript
牛奶2 小时前
JS随笔:ES6+特性与模块化实践
前端·javascript
牛奶2 小时前
JS随笔:基础语法与控制结构
前端·javascript
前端Hardy2 小时前
HTML&CSS&JS:基于定位的实时天气卡片
javascript·css·html
H0484 小时前
symbol为什么说是为了解决全局变量冲突的问题
javascript
Always_Passion5 小时前
FE视角下的Referrer全面解析
javascript·面试