Google apps script 数组.indexOf(值)-未在GAS中提供正确的索引号
在天然气方面 在谷歌电子表格B1:B10范围内Google apps script 数组.indexOf(值)-未在GAS中提供正确的索引号,google-apps-script,google-sheets,google-spreadsheet-api,Google Apps Script,Google Sheets,Google Spreadsheet Api,在天然气方面 在谷歌电子表格B1:B10范围内 Code.gs function myFunction() { var sheet2 = SpreadsheetApp.getActivesheet(); var firstset = sheet2.getRange('B1:B10').getValues(); Logger.log(firstset) var found = firstset.indexOf('[re]') Logger.log(found) } 代码的答案
Code.gs
function myFunction() {
var sheet2 = SpreadsheetApp.getActivesheet();
var firstset = sheet2.getRange('B1:B10').getValues();
Logger.log(firstset)
var found = firstset.indexOf('[re]')
Logger.log(found)
}
代码的答案应该是2,但是日志显示为-1(不匹配)。有什么帮助吗
在一个简单的for循环中:
B1 we
B2 we
B3 re
B4 ef
B5 ge
B6 er
B7 fe
B8 th
B9 rg
B10 pq
在一个简单的for循环中:
B1 we
B2 we
B3 re
B4 ef
B5 ge
B6 er
B7 fe
B8 th
B9 rg
B10 pq
如果将数据放在一行而不是一列中,代码可以如下使用:
function myFunction() {
var sheet2 = SpreadsheetApp.getActiveSheet();
var firstset = sheet2.getRange('B1:B10').getValues();
for(var n in firstset){
if(firstset[n][0]=='re'){break}
}
Logger.log(n);
}
indexOf
-只能在一维数组中搜索-因此在我的示例中使用了firstset[0]。indexOf('[re]')
.getValues()
-始终返回二维数组,即使只有一行或一列。如果要将数据放在一行而不是一列中,代码可以这样使用:
function myFunction() {
var sheet2 = SpreadsheetApp.getActiveSheet();
var firstset = sheet2.getRange('B1:B10').getValues();
for(var n in firstset){
if(firstset[n][0]=='re'){break}
}
Logger.log(n);
}
indexOf
-只能在一维数组中搜索-因此在我的示例中使用了firstset[0]。indexOf('[re]')
.getValues()
-始终返回二维数组,即使只有一行或一列。以下是适合我的方法
这是一个修改过的方法,原来没有给我正确的结果
function myFunction() {
var sheet2 = SpreadsheetApp.getActivesheet();
var firstset = sheet2.getRange('A1:J1').getValues();
Logger.log(firstset)
var found = firstset[0].indexOf('[re]')
Logger.log(found)
}
注意
Array.prototype.findIndex = function(search)
{
if(search == "") return -1;
for(var t = 0; t < this.length; t++)
{
if(this[t].search(search) >=0)
{break}
}
return t-1;
}
使用此方法按名称获取图纸列的索引时,将索引增加1以使用sheet.getRange(rowIndex,columnIndex)
这是对我有用的 这是一个修改过的方法,原来没有给我正确的结果
function myFunction() {
var sheet2 = SpreadsheetApp.getActivesheet();
var firstset = sheet2.getRange('A1:J1').getValues();
Logger.log(firstset)
var found = firstset[0].indexOf('[re]')
Logger.log(found)
}
注意
Array.prototype.findIndex = function(search)
{
if(search == "") return -1;
for(var t = 0; t < this.length; t++)
{
if(this[t].search(search) >=0)
{break}
}
return t-1;
}
使用此方法按名称获取图纸列的索引时,将索引增加1以使用sheet.getRange(rowIndex,columnIndex)
“[rel]”是字符串,您的数组不是字符串数组而是数组数组:-)谢谢..有没有办法这样做,我的意思是从数组中获取索引或将数组转换为字符串数组“[rel]”是字符串,您的数组不是字符串数组而是数组:-)谢谢..有没有办法这样做,我的意思是从数组数组中获取索引或将数组数组转换为字符串数组Hanks Serge…将尝试,但
{break}
是否意味着在匹配的情况下停止循环?谢谢Serge…将尝试,但{break}
是否意味着在匹配的情况下停止循环?