Javascript 中的 indexOf 问题
Issues with indexOf in Javascript
我在 Javascript 中遇到 indexOf 问题。当使用电子表格中的 .getValues() 获取字符串时,IndexOf 似乎找不到字符串。
例如,下面的函数工作正常。
function Narek() {
var array = ["Armine", "Narek", "Suren"]
var ggg = array.indexOf("Armine");
}
但是这个函数,它从 googlesheets returns -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);
}
有人可以帮忙吗?
虽然 Range#getValue() returns top-left 单元格内容(在本例中为 A49 内的值),# getValues() returns 整个范围的单元格内容的 two-dimensional 数组(即 A45:A47)。每个内部数组都包含该行的值。
所以也许更类似于:
var values = [["Armine"], ["Narek"], ["Suren"]];
这可以转化为你对平面阵列的期望。
var array = values.map(function(row) { return row[0]; });
// ["Armine", "Narek", "Suren"]
我在 Javascript 中遇到 indexOf 问题。当使用电子表格中的 .getValues() 获取字符串时,IndexOf 似乎找不到字符串。
例如,下面的函数工作正常。
function Narek() {
var array = ["Armine", "Narek", "Suren"]
var ggg = array.indexOf("Armine");
}
但是这个函数,它从 googlesheets returns -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);
}
有人可以帮忙吗?
虽然 Range#getValue() returns top-left 单元格内容(在本例中为 A49 内的值),# getValues() returns 整个范围的单元格内容的 two-dimensional 数组(即 A45:A47)。每个内部数组都包含该行的值。
所以也许更类似于:
var values = [["Armine"], ["Narek"], ["Suren"]];
这可以转化为你对平面阵列的期望。
var array = values.map(function(row) { return row[0]; });
// ["Armine", "Narek", "Suren"]