首页 > 其他分享 >Object 对象实现for of 迭代遍历

Object 对象实现for of 迭代遍历

时间:2024-06-02 16:32:56浏览次数:22  
标签:index 遍历 obj iterator 迭代 keys Object let

实现代码

Object.prototype[Symbol.iterator] = function () {
    let keys = Object.keys(this);
    let index = 0;
    return {
        next: () => {
            return {
                value: this[keys[index++]],
                done: index >= keys.length + 1 ? true : false,
            }
        }
    }
}

var obj={
    a:"skfjslkjdfs",
    b:"sklfjlskjdfks"
}

for(let i of obj){
    console.log(i,"iiii")
}

实现方式2,使用生成器实现
Object.prototype[Symbol.iterator] = function* () {
    for (let key of Object.keys(this)) {
        yield this[key];
    }
};

var obj = {
    a: "skfjslkjdfs",
    b: "sklfjlskjdfks"
};

for (let i of obj) {
    console.log(i, "iiii");
}
截图

image

标签:index,遍历,obj,iterator,迭代,keys,Object,let
From: https://www.cnblogs.com/jocongmin/p/18227256

相关文章

  • UE中的TStrongObjectPtr
    TStrongObjectPtr是UnrealEngine中的一种智能指针类型,用于管理UObject派生类对象的生命周期。它通常用于确保一个指向UObject的指针在其使用期间不会被垃圾回收系统销毁。TStrongObjectPtr的作用和特点:生命周期管理:TStrongObjectPtr持有UObject的强引用,确保在TStr......
  • mask -rcnn benchmark编译失败RuntimeError: Error compiling objects for extension(
    1.首先几步跟官网一样condacreate--namemaskrcnn_benchmarkpython==3.8(建议装3.8,好装pytorch)condaactivatemaskrcnn_benchmark#thisinstallstherightpipanddependenciesforthefreshpythoncondainstallipythonpip#maskrcnn_benchmarkandcocoa......
  • 【JAVA】快速遍历map集合
    1.使用entrySet()方法【推荐】2.直接使用values()方法获取所有value值组成的集合3.使用keySet()方法和getValue方法4.使用迭代器iterator5.使用增强for的Lambda表达式......
  • 【Python】解决Python报错:AttributeError: ‘str‘ object has no attribute ‘xxx‘
    ......
  • 二叉树链式结构的前序、中序、后序、层序遍历
    文章目录一、二叉树创建二、前序遍历概念以及解释代码三、中序遍历概念及解释代码四、后序遍历概念及解释代码五、层序遍历概念及解释代码一、二叉树创建&mesp; 实现二叉树的遍历,我们要先手搓出一个二叉树,在次基础上实现二叉树的前序、中序、后序、层序遍历。......
  • Shell阶段08 数组(普通数组, 关联数组), 示例(数组的遍历与循环)
    数组基本概述#shell的数组用的比较少,一般都用awk。因为shell的数组比awk慢很多什么是数组简单来说:数组其实就是变量的一种,变量只能存储一个值,而数组可以存储多个值数组的分类分为两类普通数组关联数组普通数组:只能使用正整数作为数组索引关联数组:可以使用......
  • MyBatis的XML配置:如何判断List为空并遍历拼接
    哈喽,大家好,我是木头左!大家好,欢迎来到我的博客!今天要聊一聊关于MyBatis的XML配置,如何在查询数据表时判断List是否为空,并进行遍历拼接。相信这个问题对于很多使用MyBatis的朋友来说都非常实用,所以请大家认真阅读哦!一、为什么需要判断List是否为空?在的日常开发中,经常会遇到需要......
  • Unreal 浅谈TWeakObjectPtr
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!前言在Unreal的开发过程中,正确的引用和管理UObject是十分重要的,尤其Unreal有着它自己的UObject的GC机制,这使得对UObject的有效引用和管理变得尤为......
  • **static assertion failed:no q_object in the class with the signal**
    staticassertionfailed:noq_objectintheclasswiththesignal这个问题主要是由于未添加Q_OBJECT,找不到信号定义如图所示,正是由于未点击Add下面的选项,即使在后续手动添加Q_OBJECT也会报错解决的方法可以在原先的情况下进行添加新的文件(这里我是定义了Student2,Tea......
  • SAP ABAP 对工作区列遍历或按条件访问
    需要对字段数量多的工作区或动态工作区进行数据处理时,列遍历可使代码更加的简洁高效。(๑¯ω¯๑)重新发一遍,丢合集里示例代码:点击查看代码TYPES:BEGINOFtyp_kna1,kunnrTYPEkna1-kunnr,"客户编号name1TYPEkna1-name1,"送达方名......