the following JS code is supposed to output a layer of the pascal triangle :

Code:

function pascal(floor){

 var ar1 = [1,1];
if (floor < 2){return '1 1';}

return pascalPt2(floor,2,ar1);
}


function pascalPt2(floor,at,prevfloor)
{
 var result = ""; var ar2 = [];ar2[0] = 1;

 if (at == floor + 1) {for(var v of prevfloor){result = result + " " + v};return result;}

 else{for (var i=0;i<at - 2;i++){ar2[i+1] = prevfloor[i]+prevfloor[i+1]};ar2[at] = 1;}

 return pascalPt2(floor,at+1,ar2)

}


console.info(pascal(3))


for the input 3 the output is supposed to be : 1 3 3 1
for the input 4 the output is supposed to be : 1 4 6 4 1
but I get : 1 nan nan 1 and 1 nan nan nan 1 instead
here is the working vb.net code :

Code:

Public Class Form1
    Function pascal(ByVal floor As Integer) As String
        Dim ar1 = New Integer() {1, 1}
        If floor < 2 Then
            Return "1 1"


        End If
        Return pascalPt2(floor, 2, ar1)
    End Function
    Function pascalPt2(ByVal floor As Integer, ByVal at As Integer, ByVal prevfloor As Object) As String
        Dim result = ""
        Dim ar2(at) As Integer
        ar2(0) = 1
        If at = floor + 1 Then
            For Each item As Integer In prevfloor
                result &= item.ToString() & " "

            Next
            Return result
        Else
            For index = 0 To at - 2
                ar2(index + 1) = prevfloor(index) + prevfloor(index + 1)
            Next
            ar2(at) = 1
        End If
        Return pascalPt2(floor, at + 1, ar2)
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox(pascal(4))
    End Sub
End Class