0
Мне нужно выполнить поиск в электронной таблице, а в первом столбце - список писем без @ part. НапримерАлгоритм бинарного поиска для Google Apps Script
aadb.asdf
asdfsd.asdf
asdfsad.asdfsdf
asdfsdf.asdfsdf
Ниже мой код для бинарного поиска:
function testSubmit() {
var email = "aadb.asdf";
var s = SpreadsheetApp.openById("spreadsheetID");
var sheet = s.getSheets()[0];
var emailColumn = sheet.getRange(1,1, sheet.getLastRow()).getValues();
var l1 = 0;
var h1 = Number(sheet.getLastRow()) - 1;
while(h1 >= l1) {
var middle = parseInt((l1 + h1)/2);
var item = emailColumn[middle][0].valueOf();
Logger.log("Binary -> middle : " + middle + " data : " + emailColumn[middle][0]);
if(item == email) {
}
if(item.charAt(0) < email.charAt(0)) {
l1 = middle + 1;
}
if(item.charAt(0) > email.charAt(0)) {
h1 = middle - 1;
}
}
}
Но мой сценарий застревает и дает сообщение скриншот ниже.
Однако, когда я бегу линейный поиск, он отлично работает. Есть ли проблема с моим скриптом?
for (var row in emailColumn) {
for (var col in emailColumn[row]) {
if(email == emailColumn[row][col]) {
Logger.log("row : " + row + " col : " + col + " data : " + emailColumn[row][col]);
}
}
}
Показанное сообщение не является сообщением об ошибке. Сколько стоит ждать? Вы просматриваете сценарий выполнения сценария? (см. https://developers.google.com/apps-script/troubleshooting). –
Изображение прилагается не является сообщением об ошибке. @Ruben верен. Кроме этого, вы получаете какое-либо другое сообщение? Каков ваш ожидаемый результат? На данный момент попробуйте прочитать [документацию] (https://developers.google.com/apps-script/troubleshooting#debugging). В нем обсуждалось все, включая отладку. –
Я никогда не говорил, что это ошибка, но этого не должно быть, потому что бинарный поиск занимает меньше времени, чем линейный. Но в моем сценарии линейный поиск быстрый, в то время как двоичный файл кажется застрявшим в какой-то момент. Я дважды проверяю свой скрипт на ошибку, но я не вижу никаких –