2017-01-16 11 views
-2

JavascriptでindexOfに問題があります。スプレッドシートから.getValues()を使ってIndexOfが文字列を見つけられなかったようです。JavascriptでindexOfに関する問題

たとえば、以下の関数は正常に動作します。

function Narek() { 

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

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

} 

しかし、この関数は、googlesheetsから同じ名前を取得すると-1を返します。

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); 
} 

いずれかお手伝いできますか?

+0

入力を入力してください。 –

+0

各行の後にconsole.log()を付けて、どの値を取得しているかテストすることができます。 nullまたは未定義の値がある可能性があります。 –

+0

@NaveenChandraTiwari。ありがとう。私はLogger.logsを各行の後に置いて、配列とpickedHLMを正しく渡して、未定義の項目がないようにしました。 – Sati

答えて

0

ながら全範囲のセルの内容の二次元配列を返し(この場合A49内の値)、#getValuesを(左上のセルの内容を返しレンジ#のgetValue()()すなわちA45:A47)。各内部配列は行の値を保持します。

ので、おそらくもっと似て:

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

これは、平らな配列のあなたの期待に変換することができます。

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

ありがとうございました!これはうまくいった! – Sati

+0

あなたは@Satiを歓迎しています。解決策が満足であることを示すためにこの回答を「受け入れる」こともできます。 –

関連する問題