Google Sheets/Javascript:无法使用indexOf()在数组中搜索特定字符串
Google Sheets / Javascript : Unable to search for a specific string in an array using indexOf()
我正在尝试:
1) 在包含关键字"名字"的数组中查找对象--不完全——我可以从driveapp中的文件列表中完成,但它在SpreadSheetApp中似乎不起作用。
2) 然后在我的电子表格中获取该对象的索引
--错误--"TypeError:在对象First Name,Last Name,[…]中找不到函数hasNext(第9行,文件"Test get keyword from array")"
3) 将该索引(实际上是列编号)分配给一个变量,比如firstNameCol,这样我就可以访问它下面列中的所有信息。
--错误——我似乎错误地将值分配给了变量,而且根本不知道如何处理
我边走边学。那么,如果有人能更熟练地使用javascript/googlescript,那么他会不会好心地指出我在第二项中可能犯了什么错误,以及有什么方法可以完成第三项?
感谢
function testSheet()
{
var keyword = "First Name"
var ssId="1kRdKGDQJXxCW2q1HPclWcpsOpI1BJPvAlMjvLSX6JvY";
var ss = SpreadsheetApp.openById(ssId);
var sheet = ss.getSheetByName("Sheet1");
var values = sheet.getSheetValues(3, 2, 1, 23);
for(;values.hasNext(); values.next())
{
if(values.indexOf(keyword) > -1 )
/* I would like to assign the index to a variable should the if
condition return true : var keywordIndex values.getIndex();*/
logger.log(values);
}
}
您得到的是一行值:
var values = sheet.getSheetValues(3, 2, 1, 23);
从第3行开始,第2列得到一行值和23列值。
我猜您正在尝试检查所有的列标题,并找到标题为"名字"的列?这就是为什么你只得到一行数据?
getSheetValues
方法返回一个二维数组。您需要从主数组中获取第二个维度。
以下是我对代码所做的更改:
function testSheet() {
var keyword = "First Name"
var ssId="Your SS ID";
var ss = SpreadsheetApp.openById(ssId);
var sheet = ss.getSheetByName("Form Responses 1");
var values = sheet.getSheetValues(3, 2, 1, 23);
var howManyColumns = values[0].length;
var indexOfString = 0;
var thisValue = "";
for(var i = 0;i < howManyColumns; i++) {
Logger.log('i: ' + i);
thisValue = values[0][i];
Logger.log('thisValue: ' + thisValue);
indexOfString = thisValue.indexOf(keyword);
Logger.log('indexOfString: ' + indexOfString);
if(indexOfString > -1 ) {
/* I would like to assign the index to a variable should the if
condition return true : var keywordIndex values.getIndex();*/
var thisIndexNumber = i;
Logger.log('this index: ' + thisIndexNumber);
}
}
}
相关文章:
- 使用javascript搜索具有用户输入的数组
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用数组向下搜索Javascript对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- jQuery-在数组中搜索类似的元素
- Javascript:使用用户输入搜索数组
- findAndModify,如何对文档进行操作's数组搜索对象并更改字段值
- 在记录数组搜索后追加变量和数组项
- 按第一个字符进行数组搜索
- 更高效的数组搜索
- Javascript数组搜索并删除字符串
- JavaScript中的二进制数组搜索
- 在JavaScript中有更好的方法吗?使用while进行数组搜索
- Javascript中的数组搜索不工作
- 如何用输入数组搜索对象
- 这是更有效的JavaScript数组搜索或MySQL LIKE查询
- Javascript或PHP数组搜索像SQL % search %
- Js数组搜索功能,适用于ie8
- 从Python到Javascript的2D数组搜索
- Javascript数组搜索