如何解决在命名范围内查找文本
我正在尝试获取用户输入的字符串的行号或索引号。我使用电子表格.getRangeByName("Symbols").getValues() 检索数组中的数据。问题是它不会将数据作为字符串检索,而是将其作为数组检索。所以结果是一个数组数组。我想使用函数 indexOf(result.getResponseText().toUpperCase()),但这不起作用。这是我的代码:
var aSymbols = spreadsheet.getRangeByName("Symbols").getValues();
Logger.log(aSymbols);
var row = aSymbols.indexOf(result.getResponseText().toUpperCase());
Logger.log(row);
结果是:
[[ ],[XOM],[PLTR],[IBM],[VWAGY],[LIT],[ ],[]]
我尝试在搜索字符串中添加“[”和“]”,但没有用。我也尝试使用电子表格.getRangeByName("Symbols").getValues().toString(),但它返回了1个大长字符串。我错过了什么?
解决方法
解决方案:
您可以使用 findIndex()
获取二维数组中的索引:
var aSymbols = spreadsheet.getRangeByName("Symbols").getValues();
Logger.log(aSymbols);
var row = aSymbols.findIndex(function check(e) {return e[0] === result.getResponseText().toUpperCase()});
Logger.log(row);
参考:
,你可以试试这个:
let aSymbolsArray = aSymbols.flat();
这会将双精度数组转换为字符串数组。
function test(){
let aSymbols = [['' ],['XOM'],['PLTR'],['IBM'],['VWAGY'],['LIT'],['' ],['']];
console.log(aSymbols);
//
// [ 'XOM' ],// [ 'PLTR' ],// [ 'IBM' ],// [ 'VWAGY' ],// [ 'LIT' ],// [ '' ],// [ '' ] ]
//
let aSymbolsArray = aSymbols.flat();
console.log(aSymbolsArray);
//
// [ '','XOM','PLTR','IBM','VWAGY','LIT','','' ]
//
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。