【发布时间】:2021-10-23 03:31:45
【问题描述】:
我有一个工作一半的代码,我想不通的最后一件事是如何找到一个包含数字(例如 123)和一些文本(m/s)的数组项并将整个项目替换为完全空白的数组项:[]。没有数字,也没有 m/s。
我不熟悉大多数术语,并且完全是新手。这是我到目前为止所得到的:
function condForm() {
var sh = ss.getSheetByName('Sheet1');
var range = sh.getRange("D4:D20"); //*** for the sake of brevity setting to 20 instead of 154
var values = range.getValues();
var row = [];
var cols = values[0].length;
for (var i = 0, l = values.length; i < l; i++)
{
row = values[i];
for (var j = 0; j < cols; j++)
{
if (row[j] === 'TTK') { row[j] = ''; }
if(typeof row[j] != "string") { continue; } // line to allow indexOf to work
if (row[j].indexOf('m/s') > -1) { var newValue = row[j].replace('m/s', '') } //attempting to use indexOf to search for partial match to m/s, does not work but does not return error
}
}
Logger.log(values);
}
没有代码,记录器输出[[400.0], [600.0], [600.0], [600.0], [], [1283 m/s], [TTK], [440.0], [661.0], [771.0], [771.0], [], [960m/s], [TTK], [381.0], [667.0], [667.0]]
使用上面的代码,输出变为[[400.0], [600.0], [600.0], [600.0], [], [1283m/s], [], [440.0], [661.0], [771.0], [771.0], [], [960m/s], [], [381.0], [667.0], [667.0]] = 相同数量的数组项 = 非常成功
我尝试使用indexOf 搜索任何数组项包含 m/s。它不起作用,但也没有返回错误。它在做什么?我是否完全正确?
我想要一种将[1283m/s] 和[960m/s] 变为空白的方法:[]。
感谢您的阅读。
我的代码来自 Max Makhrov: https://stackoverflow.com/a/47575871/1341041
来自 Andres Duarte:https://stackoverflow.com/a/60226151/1341041
【问题讨论】:
标签: javascript arrays google-apps-script google-sheets replace