在命名范围内查找文本
Find Text in a Named Range
我正在尝试获取用户输入的字符串的行号或索引号。我使用 spreadsheet.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], [ ], []]
我尝试在搜索字符串中添加“[”和“]”,但没有成功。我也尝试使用 spreadsheet.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', '', '' ]
//
}
我正在尝试获取用户输入的字符串的行号或索引号。我使用 spreadsheet.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], [ ], []]
我尝试在搜索字符串中添加“[”和“]”,但没有成功。我也尝试使用 spreadsheet.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', '', '' ]
//
}