-1

我試圖使下面的簡單代碼工作,但總是得到以下錯誤:TypeError:無法讀取未定義的屬性「長度」TypeError:無法讀取未定義的屬性「長度」(由函數參數定義)

function multiplyAll(arr) { 


    var product = 1; 

     if (arr === undefined) { 
     return "Undefined Array!"; 
     } else { 


    for (var i = 0; i < arr.length; i++) { 
     for (var j = 0; j < arr[i].length; i++) { 
     product *= arr[i][j]; 
     } 
    } 
    return product; 


    } 
    } 


    multiplyAll([[7,2],[6,4],[5,8,9]]); 

什麼問題?

+1

您正在檢查是否arr''是不確定的,但不是是否'改編[I]'是不確定的.. – Blorgbeard

+0

事實上,很多我們這樣的代碼讓我失明。在第二個for循環中,我真的增加了'i'而不是'j'。 –

回答

4

這似乎是一個複製粘貼& /錯字錯誤:

for (var i = 0; i < arr.length; i++) { 
     for (var j = 0; j < arr[i].length; i++) 

在內部進行循環,你遞增i代替j。您將排除陣列的末尾,使arr[i]未定義。

您可以通過使用調試器或致電console.log監控ij的值來解決此問題。你會注意到,i是增加過快,而j保持在0

相關問題