2016-06-13 5 views
0

データの配列内の連続する負の値の数をカウントするカスタムスクリプトを使用しようとしています。GoogleスプレッドシートJavascript - 連続する負の数をカウント

6行目で次のエラーが表示されます。データの列をどのようにループするのですか?

"TypeError:プロパティ" 0 "を未定義から読み取ることができません。"

function MaxNegSequence(data) { 

    var lCounter = 0; 
    var lMaxCount = 0; 

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

    if (data[i][0] < 0) { 
    lCounter++; 
    if (lCounter > lMaxCount) { 
     lMaxCount = lCounter; 
    } 
    else { 
     lCounter = 0; 
    } 
    } 
} 

return lMaxCount; 

}

+0

"プロパティを読み取ることができません" 0 "未定義から"は、一部のiのdata [i]が未定義であることを意味します。エッジケースかもしれません。 – iHowell

答えて

2

"未定義から "0" プロパティを読み取ることができません" [i]はいくつかの私のために未定義のデータを意味します。もともと私はそれが最悪のケースかもしれないと思っていましたが、data[i]を反復するのではなく、data[j][i]のインデックスを使用していたので、余分なインデックスが得られます。この行を変更します。

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

for (var i = 0; i < data.length; i++) { 

にこれを使用すると、データを反復させます。一枚ずつ移動する必要がある場合は、代わりに入れ子のforループを設定します。

関連する問題