Недавно я написал код сценариев Служб Google, который выполняет поиск в каждой ячейке столбца, чтобы проверить наличие нескольких подстрок в одной основной строке.К сожалению, есть около 21000 основных строк, которые он должен искать, что занимает так много времени, что время от времени заканчивается.Я не опытный программист, поэтому мне было интересно, использовал ли я лучшие практики при написании этого кода, или есть ли способ, которым я могу оптимизировать его.
function allNames(setOfStrings, mainString){
var i = 0;
var bool = "true";
while(i < setOfStrings.length && bool == "true"){
var indexCheck = mainString.indexOf(setOfStrings[i]);
if(indexCheck > -1){
var bool = "true";
}
else{
var bool = "false";
}
i++;
}
return bool;
}
Проверяет строку и возвращает true, если всев нем содержатся подстроки
function previewPlacements(){
var ss = SpreadsheetApp.openById("1f1vGK88OeUcfAEVQ0R06LLa8iq1-
99_KFyaxsyU4aRs");
var add = ss.getSheetByName("Add Placements");
var ps = ss.getSheetByName("Placement Import");
var rowNum = 2;
var codes = add.getRange(["E1:G1"]).getValues().join().split(',');
var plCountCell = ps.getRange("I1").getValue();
var contains = "";
for(i = 0; i < 4000; i++){
var ct = getFirstEmptyRowPlacement();
var placement = ps.getRange(rowNum + i, 1).getValue();
var addRange = add.getRange(ct + 10, 3);
var contains = allNames(codes, placement);
if(contains == "true") {addRange.setValue(placement);
}
}
Logger.log(plCountCell)
}
Если из первой функции возвращается значение true, это печатает его в следующей пустой ячейке определенного диапазона.
Любая помощь будет принята с благодарностью.