Javascript 如何生成第n行Pascal';s三角形?

Javascript 如何生成第n行Pascal';s三角形?,javascript,pascals-triangle,Javascript,Pascals Triangle,我正在寻找一个函数,可以产生帕斯卡三角形的第n条线。我在网上找到了几种解决方案,但我并不完全理解它们。有人能解释一下这个代码块吗?我不明白为什么unshift方法不会只生成一个1数组 const getRow = rowIndex => { const res = [] while (res.length <= rowIndex) { res.unshift(1) for(let i = 1; i < res.length -

我正在寻找一个函数,可以产生帕斯卡三角形的第n条线。我在网上找到了几种解决方案,但我并不完全理解它们。有人能解释一下这个代码块吗?我不明白为什么unshift方法不会只生成一个1数组

const getRow = rowIndex => {
    const res = []

    while (res.length <= rowIndex) {
        res.unshift(1)
        for(let i = 1; i < res.length - 1; i++) {
            res[i] += res[i + 1]
        }
    }

    return res
}
const getRow=rowIndex=>{
常数res=[]

虽然(res.length
res[i]+=res[i+1]
我想我知道这行正在覆盖res[i]的值,但我不明白为什么在取消移位之前会开始循环。当我控制台注销所有内容时(&使用5作为我的行)似乎循环是在第三1被移到空数组之后开始的。嗯,考虑到< <代码> > <代码>循环只在数组至少有一次之后执行。3个元素,因为
1<2-1
不会为真。只有当有3个元素时,它才会第一次为真。每个元素通过
,而
循环在
res
的开头加上“1”,将其长度增加1。然后
for
循环将
i+1
处的元素值添加到元素在
i
处,如果
i+1
在数组的范围内。这一直持续到
res.length好的,我想我开始理解这一点了!循环开始一次
i
是真的。谢谢你们的帮助!
res[i]+=res[i+1]
我想我知道那行正在覆盖res[i]的值但是我不明白为什么循环在未移位之前就已经开始了。当我控制台记录所有的东西(和使用5作为我的行)时,好像循环在第三个1被移动到空数组之后开始。3个元素,因为
1<2-1
不会为真。只有当有3个元素时,它才会第一次为真。每个元素通过
,而
循环在
res
的开头加上“1”,将其长度增加1。然后
for
循环将
i+1
处的元素值添加到元素在
i
处,如果
i+1
在数组的范围内。这将一直持续到
res.length好的,我想我开始理解这一点了!循环开始一次
i
是真的。谢谢大家的帮助!