js迭代器實現斐波那契數列

兩情迢迢發表於2019-01-23

// 直接上程式碼
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()下去,開發者不用關心迭代器程式碼塊中的內容,只需關心拿到返回的結果

斐波那契:

斐波那契數列,又稱黃金分割數列。數列特點是前兩項等於之和等於後一項


相關文章