js迭代器实现斐波那契数列

468 阅读1分钟

// 直接上代码
function lterator () {
    let arr = [0, 1]
    let index = 0
    return {
        next () {
            if (arr[index] === undefined) {
                arr.push(arr[index-1] + arr[index-2])
            }
            let value = arr[index]
            index++
            return value
        }
    }
}

let lt = lterator()

lt.next() // 0
lt.next() // 1
lt.next() // 1
lt.next() // 2
lt.next() // 3
lt.next() // 5
lt.next() // 8
lt.next() // 13
lt.next() // 21
lt.next() // 34
...



迭代器:

迭代器是惰性的,不像普通for循环,迭代器可以一直next()下去,开发者不用关心迭代器代码块中的内容,只需关心拿到返回的结果

斐波那契:

斐波那契数列,又称黄金分割数列。数列特点是前两项等于之和等于后一项