2017-01-16 4 views
-2

Ich habe Probleme mit indexOf in Javascript. Es scheint, dass IndexOf eine Zeichenfolge nicht finden kann, wenn sie mithilfe von .getValues ​​() aus einer Kalkulationstabelle abgerufen wird.Probleme mit indexOf in Javascript

Zum Beispiel funktioniert die folgende Funktion gut.

function Narek() { 

var array = ["Armine", "Narek", "Suren"] 

var ggg = array.indexOf("Armine"); 

} 

Aber diese Funktion, die die gleichen Namen von den Google-Tabellen erhält, gibt -1 zurück.

function Narek() { 
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("HL rota"); 
var array = ss.getRange(45,1,3,1).getValues(); 

var pickedHLM = ss.getRange(49,1,1,1).getValue(); 
var ggg = array.indexOf(pickedHLM); 

Logger.log(pickedHLM) 
Logger.log(ggg); 
} 

Jeder kann helfen?

+0

bitte die Eingänge bereitstellen. –

+0

Sie können console.log() nach jeder Zeile setzen, um zu testen, welche Werte Sie erhalten. Sie könnten einige Null- oder undefinierte Werte haben. –

+0

@NaveenChandraTiwari. Vielen Dank. Ich habe Logger.logs nach jeder Zeile eingefügt und es bringt sowohl das Array als auch das pickedHLM korrekt, so dass es keine undefinierten Elemente gibt. – Sati

Antwort

0

Während Bereich # getValue() die obere linke Zelleninhalt (der Wert innerhalb A49 in diesem Fall) zurückkehrt, #getValues ​​() ein zweidimensionales Array der Zellinhalt des gesamten Bereichs zurückgibt (zB A45: A47). Jedes innere Array enthält die Werte der Zeile.

So vielleicht ähnlich wie:

var values = [["Armine"], ["Narek"], ["Suren"]]; 

Dies kann in Ihre Erwartung einer flachen Anordnung umgewandelt werden.

var array = values.map(function(row) { return row[0]; }); 
// ["Armine", "Narek", "Suren"] 
+0

Vielen Dank! Das hat funktioniert! – Sati

+0

Sie sind herzlich willkommen @Sati, Sie können diese Antwort auch annehmen, um zu zeigen, dass die Lösung zufriedenstellend war. –