2016-06-13 17 views
0

Ich versuche, ein benutzerdefiniertes Skript zu verwenden, um die Anzahl der aufeinanderfolgenden negativen Werte in einem Array von Daten zu zählen.Google Sheets Javascript - zählen fortlaufende negative Zahlen

Ich bekomme den folgenden Fehler in Zeile 6. Wie schleife ich über eine Spalte von Daten?

"TypeError: Kann Eigenschaft" 0 "von undefined nicht lesen."

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

"Kann die Eigenschaft nicht lesen" 0 "von undefiniert" bedeutet, dass Daten [i] für einige i nicht definiert sind. Kann ein Randfall sein. – iHowell

Antwort

2

"Kann nicht lesen Eigenschaft "0" von undefined" Daten [i] für ein i ist nicht definiert. Ursprünglich dachte ich, es könnte ein Randfall sein, aber dann sah ich, dass Sie einen Index für data[j][i] verwendeten, anstatt nur über data[i] zu iterieren, damit Sie zusätzliche Indizes erhalten. Ändern Sie diese Zeile:

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

zu

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

So können Sie über die Daten durchlaufen. Wenn Sie Stück für Stück vorgehen müssen, richten Sie stattdessen eine verschachtelte for-Schleife ein.