应用程序脚本-在数组中搜索字符串,如果该字符串存在,则返回true或false



我正在将Apps Script与Google Sheets一起使用。我已经编写了一些代码来获取单元格中的值并将其保存到变量中。然后我创建了一个包含所有这些变量的数组。我希望能够浏览数组并查找单词";失败";如果存在则返回true,如果不存在则返回false。它只需要在数组中匹配一次就可以为真。

这就是我目前所拥有的:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
for(var i = 20;i<=120,i++){
var main = activeSheet.getRange(i, 8).getValue();
var state = activeSheet.getRange(i, 9).getValue();
var scroll = activeSheet.getRange(i, 10).getValue();;
var log = activeSheet.getRange(i, 11).getValue();
const testArray = [main, state, scroll, log];
//need some code here to look for the string "fail" in the array and if it is there, return true, otherwise return false.

}
}

请改用此代码。我已经将testArray设置为一个空数组,然后在数组中插入每个单元格的值。然后,您可以使用.includes功能

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();

for(var i = 20;i<=120;i++){
var testArray = []
var main = activeSheet.getRange(i, 8).getValue();
var state = activeSheet.getRange(i, 9).getValue();
var scroll = activeSheet.getRange(i, 10).getValue();
var log = activeSheet.getRange(i, 11).getValue();
//insert each value to array
testArray.push(main,state,scroll,log);
//check if word fail is in array
var checkWord = testArray.includes("fail");
console.log(checkWord);

}
}

或者,如果希望只检查一次,可以将空数组和语法放在for循环之外检查单词。参见以下代码:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
var testArray = []
for(var i = 20;i<=120;i++){
var main = activeSheet.getRange(i, 8).getValue();
var state = activeSheet.getRange(i, 9).getValue();
var scroll = activeSheet.getRange(i, 10).getValue();
var log = activeSheet.getRange(i, 11).getValue();
//insert each value to array
testArray.push(main,state,scroll,log);
//check if word fail is in array
}
var checkWord = testArray.includes("fail");
console.log(checkWord);
}

让我知道这是否有效!

参考:https://www.digitalocean.com/community/tutorials/js-array-search-methods

这里有一个简单的建议:

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();
var rng = activeSheet.getRange(20,9,20,4);
var data = rng.getValues();
var confirmation = false
for(var i = 0; i<=data.length, i++){
var rowData = data[i];
if(rowData.indexOf("fail")>-1){
confirmation = true;
}  
}
}

最新更新