迭代器实现简单演示:斐波拉契取值

概念

首先明确迭代概念:从一个数据集合中,按照一定规律可控的取出数据。

迭代器:用于迭代数据的一个工具对象,他返回一个对象,包含next方法(用于下一次的迭代),value值(迭代目标值)done参数(是否迭代完成)

示例代码(一个简单数组迭代器)

js 复制代码
let arr1 = [1, 2, 3, 4, 5]
        function creatItertor (arr) {//迭代生成器
            let index = 0//数组下标
            let result = {//迭代对象
                value: null,
                done: false
            }
            return {
                next () {
                    if (index >= arr.length) {
                        result.done = true
                        console.log('已经迭代完成了!', result)
                        return
                    }
                    result.value = arr[index]
                    index++
                    return result

                }

            }

        }
const Itertor1 = creatItertor(arr1)//创建一个迭代器

斐波拉契迭代

斐波拉契数列[1 1 2 3 5 8 13 ...]

js 复制代码
function creatFeiboItertor () {
            let curIndex = 1//生成位置索引
            let firstIndexVal = 1//相加位第一位值
            let secendIndexVal = 1//相加位第二位值
            let result = {//迭代对象
                value: null,
                done: false
            }
            return {
                next () {
                    if (curIndex <= 2) {
                        result.value = 1
                    } else {
                        result.value = firstIndexVal + secendIndexVal
                        firstIndexVal = secendIndexVal
                        secendIndexVal = result.value

                    }
                    curIndex++
                    return result
                }

            }

        }
        const FeiboItertor = creatFeiboItertor()//创建一个斐波拉契迭代器
相关推荐
Cache技术分享几秒前
290. Java Stream API - 从文本文件的行创建 Stream
前端·后端
陈_杨3 分钟前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片开发完全指南
前端·harmonyos
小杨同学499 分钟前
C 语言实战:枚举类型实现数字转星期(输入 1~7 对应星期几)
前端·后端
陈_杨11 分钟前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片刷新机制
前端·harmonyos
go_caipu18 分钟前
Vben Admin管理系统集成qiankun微服务(二)
前端·javascript
唐叔在学习22 分钟前
insertAdjacentHTML踩坑实录:AI没搞定的问题,我给搞定啦
前端·javascript·html
超绝大帅哥22 分钟前
Promise为什么比回调函数更好
前端
幸福小宝22 分钟前
uniapp 异型无缝轮播图
前端
wordbaby25 分钟前
TanStack Router 实战: 如何设置基础认证和受保护路由
前端
智算菩萨28 分钟前
Anthropic Claude 4.5:AI分层编排的革命,成本、速度与能力的新平衡
前端·人工智能