У меня есть рабочий код ниже, который сравнивает два набора данных из двух разных листов. Один из них - это список из 395 телефонных номеров, второй - список из примерно 135 000 строк данных. Следующий код сравнивает их по сходству и копирует похожую строку на третий лист.
Хотя код работает для небольших тестов (1000 строк и 395 телефонных номеров) примерно за 10 минут. Однако выполнение 135 000 строк приводит к превышению времени ожидания сценария. Вот сценарий ниже.
`function copyRowtoSheet3() {
var s1 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet1');
var s2 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet2');
var s3 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet3');
var values1 = s1.getDataRange().getValues();
var values2 = s2.getDataRange().getValues();
var resultArray = [];
for(var n=0; n < values1.length ; n++){
var keep = false;
for(var p=0; p < values2.length ; p++){
Logger.log(values1[n][0]+' =? '+values2[p][0]);
if( values1[n][1] == values2[p][0] ){
resultArray.push(values1[n]);
Logger.log('true');
//break ;
}
}
}
s3.getRange(+1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}`
Я не лучший в оптимизации кода, и он был бы рад, если бы были какие-либо предложения, которые могли бы быть введены здесь. Я взглянул на лучшие практики и применил их уже в меру своих способностей. Любые предложения к коду здесь?