用迭代器 模拟一个for of

javascript 复制代码
 function forOf(arr, cb) {
    //const fun = arr.entries
     const fun = arr[Symbol.iterator]
    if (arr != null && typeof fun !== 'function') {
       throw TypeError("arr is not a iterable")
    }
    let iterator = arr[Symbol.iterator]();
    let obj = iterator.next();
    while (!obj.done) {
      cb(obj.value)
      obj = iterator.next()
    }
  }
javascript 复制代码
 // 测试
  const obj = { k: 1 }
  const obj2 = { k: 2 }
  const wp = new WeakMap([[obj, 1], [obj2, 2]]) //x
  const ws = new WeakSet([[obj, 1], [obj2, 2]])//x
  const map = new Map([[obj, 1], [obj2, 2]])//√
  const set = new Set([[obj, 1], [obj2, 2]])//√
  const arr = Array.from(ws) //√ []

  let ddo = wp
  forOf(ddo, function (val) {
    console.log(val, 'my forOf')
  })
 // for (let i of ddo) {
 //   console.log(i, "for of")
 // }
相关推荐
代码游侠2 分钟前
复习笔记——C语言指针
linux·c语言·开发语言·笔记·学习
想看一次满天星9 分钟前
阿里140-语雀逆向分析
javascript·爬虫·python·语雀·阿里140
合作小小程序员小小店9 分钟前
web网页开发,在线%餐饮点餐%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·数据库·html·intellij-idea·springboot
鹏多多20 分钟前
HTML的Video从基础使用到高级实战+兼容的完全指南
前端·javascript·vue.js
q***420520 分钟前
PHP搭建开发环境(Windows系统)
开发语言·windows·php
晓得迷路了21 分钟前
栗子前端技术周刊第 107 期 - Angular v21、pnpm 10.22、React 2025 现状调查...
前端·javascript·angular.js
韩曙亮27 分钟前
【Web APIs】JavaScript 事件高级 ③ ( DOM 事件流 | 捕获阶段 | 目标阶段 | 冒泡阶段 )
前端·javascript·web apis·捕获阶段·目标阶段·冒泡阶段·dom 事件流
p***h64332 分钟前
React数据分析应用
前端·react.js·前端框架
4***997432 分钟前
TypeScript类型体操
前端·javascript·typescript
u***096433 分钟前
TypeScript装饰器
前端·javascript·typescript