JS详解-迭代器模式详解两种方法实现

前言:

        // 迭代协议可以定制对象的迭代行为-分为两个协议:可迭代协议、迭代器协议// 可迭代协议:增加方法[Symbol,=.iterator](){}(属性名表达式)返回符合协议器的对象// 迭代器协议:有next方法的对象,next方法返回:// 已结束:{done:true}// 继续迭代:{done:false,value:'x'}// 可以使用Generator或自己实现对象,next

Generator法:

   <script>const obj = {// Symbol.iterator 内置常量//[属性名表达式](){}[Symbol.iterator](){// 手写const arr = [1,2,3,4,5]let index = 0return {next(){if(index < arr.length){// 可以继续迭代return {done:false,value:arr[index++]}}else{return {// 已结束done:true}}}}}}for(const iterator of obj){console.log('iterator',iterator)}</script>

手写使用next和对象:

   <script>const obj = {// Symbol.iterator 内置常量//[属性名表达式](){}[Symbol.iterator](){// 使用Generatorfunction* gen(){yield 1yield 2yield 3yield 4yield 5}return gen()}}for(const iterator of obj){console.log('iterator',iterator)}</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLMOps快速入门,轻松开发部署大语言模型

大家好&#xff0c;如今我们能够与ChatGPT进行轻松互动&#xff1a;只需输入提示&#xff0c;按下回车&#xff0c;就能迅速得到回应。然而&#xff0c;这个无缝互动的底层&#xff0c;是一系列复杂而有序的自动执行步骤&#xff0c;即大型语言模型运营&#xff08;LLMOps&…

SpringBoot快速入门笔记(4)

文章目录 一、Vue框架1、前端环境准备2、简介3、快速开始4、事件绑定 二、Vue组件化开发1、NPM2、Vue Cli3、组件化开发4、SayHello自定义组件5、Movie自定义组件 一、Vue框架 1、前端环境准备 编码工具&#xff1a;VSCode 依赖管理&#xff1a;NPM 项目构建&#xff1a;VueCl…

【QT教程】QML与C++的交互

主页 软件开发 QT6 QML高级编程补天云火鸟自动化创作平台您能够创建大约3000 个短视频一天可以轻松创建多达 100 个视频 QML与C的交互 使用AI技术辅助生成 【QT免费公开课】您可以到这里观看大量的QT视频课程 【QT付费视频课程】QT QML C 高级扩展开发 目录 1 QML与C的交互…

c++类和对象三部曲——(3)

目录 前言 运算符重载 如何写出运算符重载&#xff1f; 默认成员函数之赋值重载 特殊情况&#xff1a;前置与后置 特殊情况&#xff1a;友元与"operator<<" 内部类 const成员函数 关于const权限放大与缩小的问题 取地址及const取地址重载 再谈构造函…

NLP学习路线总结

NLP&#xff08;自然语言处理&#xff09;是人工智能领域的一个重要分支&#xff0c;涉及计算机理解和生成人类语言的能力。以下是一份NLP的学习路线总结&#xff1a; 基础知识: 编程语言: 掌握Python或Java等主流编程语言&#xff0c;因为大多数NLP工具和库都是用这些语言编写…

DDOS攻击原理

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种常见的网络攻击方式&#xff0c;其目的是使目标服务或资源无法正常提供服务给合法用户。DDoS攻击的基本原理是通过大量的恶意流量或请求&#xff0c;耗尽目标系统的资源&#xff08;如带宽、处理能力等&#xff09;&#…

linux模糊删除文件命令

在Linux中&#xff0c;可以使用find命令配合-name参数和通配符来模糊匹配并删除文件。以下是一个示例命令&#xff0c;用于删除当前目录及子目录下所有包含“example”文本的文件&#xff1a; find . -type f -name *example* -exec rm -f {} \;解释&#xff1a; . 表示当前目…

JDI LCD 驱动时序介绍

1. 引言 绝大多数 STM32 MCU 都可应用于图形界面&#xff0c;而且很多系列还内置图形硬件 LTDC&#xff0c;支持驱动 RGB 接口的 LCD。但是存在少数类型的 LCD&#xff0c;如 JDI 屏&#xff0c;除了 STM32L4P5 支持外&#xff0c;其它 MCU 只能根据屏的接口时序要求&#xff…

数学与人工智能:共舞于数字时代的奥秘

数学&#xff0c;这一源远流长的学科&#xff0c;长久以来一直为人类社会的发展与进步提供了坚实的基础。与此同时&#xff0c;随着科技的迅猛发展&#xff0c;人工智能这一新兴领域正逐渐改变着我们的生活方式。这两者之间&#xff0c;似乎存在着一种难以言喻的紧密联系。本文…

hbuilderX创建的uniapp项目转移到vscode

场景&#xff1a;一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持&#xff0c;所以想把整个项目目录拖到vscode进行开发&#xff0c;但发现运行不了&#xff0c;提示没有package.json等&#xff0c;并且不能执行pnpm命令 首先&#xff0c;我们先来看一下h…

软件测试(测试用例详解)(三)

1. 测试用例的概念 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 测试环境操作步骤测试数据预取结果 测试用例的评价标准&#xff1a; 用例表达清楚&#xff0c;无二义性。。用例可操作性强。用例的输入与输出明确。一条用例只有…

力扣---反转链表 II ***

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,…

【MATLAB】GA_BP神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 GA_BP神经网络时序预测算法是一种结合了遗传算法(GA)和反向传播(BP)神经网络的时序预测方法。它利用了遗传算法的全局搜索和优化能力&#xff0c;以及BP神经网络的学习和逼近能力&#xff0c;可以更有效地预…

Ubuntu中文输入法设置指南:从添加输入源到自定义设置的完整步骤

文章目录 Ubuntu设置中文输入法教程步骤1&#xff1a;打开“设置”应用程序步骤2&#xff1a;进入“区域与语言”设置步骤3&#xff1a;添加中文输入源步骤4&#xff1a;选择中文输入法步骤5&#xff1a;设置默认输入源&#xff08;可选&#xff09;步骤6&#xff1a;使用中文输…

C++算法 —— 前缀和

一、【模版】前缀和 1.链接 【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) 2.描述 3.思路 前缀和的思想其实就是一种简单的动态规划&#xff0c;以i位置记录从头位置到i位置的和&#xff0c;然后间接的求一段连续区间的数组和&#xff0c;时间复杂度是O&#xff08;n&…

解密项目管理工具数据安全:防火防盗,保密有招

相关数据显示&#xff0c;2021年中国数字经济规模总量达到45.5万亿元&#xff0c;占到国内GDP总量的39.8%。数字经济已经渗入我们工作生活的方方面面&#xff0c;项目管理工具就是其中之一&#xff0c;在数据安全备受重视的今天如何保证项目管理工具的数据安全性&#xff1f;Zo…

java中LocalDateTime,Instant,ZoneID,ZoneDateTime,DateTimeFormatter类常用的API

LoaclDate LocalTime LocalDateTime类 LocalDate &#xff1a;代表本地日期&#xff08;年&#xff0c;月&#xff0c;日&#xff0c;星期&#xff09; LocalTime:代表本地时间&#xff08;时&#xff0c;分&#xff0c;秒&#xff0c;纳秒&#xff09;API LocalDateTime:代…

【leetcode面试经典150题】13.除自身以外数组的乘积(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

达梦disql登录数据库显示“未连接”

问题&#xff1a;达梦数据库在使用disql登录时&#xff0c;显示“未连接”。 指定了IP和端口号还是连接异常。 [dmdbatest ~]$ disql sysdba/Dameng123 disql V8 SQL> select * from v$instances; 未连接 SQL> exit [dmdbatest ~]$ disql sysdba/Dameng123localhost:52…

C++运算符重载如何模拟数学表达式,或模拟Python sympy和numpy

在人工智能数学基础一书中&#xff0c;下面是一题Python求函数极限的例子&#xff1a; 【例2.6】使用Python编程求 lim( x → 1) (x^2 - 1 / x - 1) ————————————————————————————————————————— import sympy from sympy import oo…