Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Array.indexOf()在将字符串作为变量传递时找不到值?_Javascript_Google Sheets - Fatal编程技术网

Javascript Array.indexOf()在将字符串作为变量传递时找不到值?

Javascript Array.indexOf()在将字符串作为变量传递时找不到值?,javascript,google-sheets,Javascript,Google Sheets,我正在编写一个Google脚本来扩展Google电子表格。我试图创建一个函数,通过在函数中传递给定列的标题来确定该列的索引 function columnIndexForHeader(header) { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues() var headers = data[0] var index = data.indexOf(head

我正在编写一个Google脚本来扩展Google电子表格。我试图创建一个函数,通过在函数中传递给定列的标题来确定该列的索引

function columnIndexForHeader(header) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues()
  var headers = data[0]
  var index = data.indexOf(header) + 1
  Logger.log("Looking for header "+header)
  Logger.log("List of headers: "+headers)
  Logger.log("Header 12: "+headers[12])
  Logger.log("Index of History:"+headers.indexOf("History"))
  Logger.log("Requested index for header "+header+" is "+ index)
  return index
}
在上面的例子中,我正在寻找一个名为History的列标题,它目前是电子表格中的第13列(因此数组中的索引12)

当我调用我使用的函数时,例如:

currentSheet.getRange(i+1, columnIndexForHeader("History")).setValue("New")
现在,使用字符串搜索中的标头索引(与记录器示例一样)可以正常工作,但由于某些原因,在使用变量搜索时无法找到标头(将-1返回到indexOf()。日志将显示以下内容:

[14-06-28 22:30:37:665 ICT] Looking for header History
[14-06-28 22:30:37:702 ICT] List of headers: ID,First-Last,Nick,Course,Section,Grade,Correspondence,Remarks,Attendence,Status,Program,Major,History,Nationality,LEP ID,Email (Stamford),Email (Private),Phone,
[14-06-28 22:30:37:703 ICT] Header 12:History
[14-06-28 22:30:37:703 ICT] Index of History:12
[14-06-28 22:30:37:703 ICT] Requested index for header History is 0

为什么它无法从变量中找到标头,而在传递字符串时似乎成功了?

您忘记了数组索引

var headers = data[0];
var index = data[0].indexOf(header) + 1; // not data, data[0]!
或者


你做的是
data.indexOf
而不是
headers.indexOf
.Doh!(我已经看了两个小时了,没有看到):谢谢你借了你鹰的视力。
var index = headers.indexOf(header) + 1; // using the variable from the previous line.