-1

의 'length'속성을 읽을 수 없습니다. 아래의 간단한 코드를 만들려고하지만 항상 다음 오류가 발생합니다. 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

에 남아있는 동안 당신은, i 너무 빨리 증가 된 것으로 나타났습니다,하지만 편곡 [내가]'정의하지'여부 .. 사실 – Blorgbeard

+0

많은 우리 코드는 나를 눈이 멀게 만든다. 나는 두 번째 for 루프에서'j' 대신'i'를 실제로 증가 시켰습니다. –

답변

4

이 사본 & 붙여 넣기/오타 오류로 나타납니다 루프 내부에서

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

대신 ji를 증가하고 있습니다. 배열 끝에서 벗어나 arr[i]을 정의하지 않게됩니다.

디버거를 사용하거나 console.log을 호출하여 ij의 값을 모니터링하여이를 해결할 수있었습니다. j 당신은 arr`이 정의되지 않은`여부를 확인하는 0