杨辉三角形函数 JavaScript Generator 实现

起源

近年关,思乡情浓。于是看起了python,在廖雪峰的python教程中看到了python Generator感觉与 JavaScript 颇有神似,故译之。

百度百科语言实现 唯独少了我大 JavaScript,这怎么能行呢?

实现

这种情况下,我是极力不想承认我的工作是翻译python

  • ES6 Generator 实现
function *triangles() {
    var arr = [1], tempArr = [];

    while (true) {
        yield arr;
        arr.push(0)
	// console.log(arr)
	tempArr = Array.from({length: arr.length}).map((item, index) => index++)
	// console.log(tempArr);

        arr = arr.map((t, i) => (arr[i-1] || 0) + arr[i])
	// console.log(arr)
    }
}

  • Test:
const yhItrator = triangles()

console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
console.log(yhItrator.next().value)
posted @ 2018-01-31 18:12  月光宝盒造梦师  阅读(148)  评论(0编辑  收藏  举报