Apps 脚本 - 在数组中搜索字符串,如果存在该字符串,则为 return true 或 false
Apps Script - Searching an array for a string and return true or false if that string is present
我在 Google 表格中使用 Apps 脚本。我写了一些代码来获取单元格中的值并将其保存到变量中。然后我创建了一个包含所有这些变量的数组。我希望能够查看数组并查找单词“fail”和 return 如果存在则为 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.
}
}
这里有一个简单的建议:
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;
}
}
}
改用此代码。
我已将您的 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
我在 Google 表格中使用 Apps 脚本。我写了一些代码来获取单元格中的值并将其保存到变量中。然后我创建了一个包含所有这些变量的数组。我希望能够查看数组并查找单词“fail”和 return 如果存在则为 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.
}
}
这里有一个简单的建议:
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;
}
}
}
改用此代码。 我已将您的 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