Я пытаюсь создать скрипт, который отфильтровывает товары из списка из более чем 100 000 товаров. Требуется отфильтровать недоступные товары и товары из категорий, которые я не могу включить sh. У меня есть 2 листа, один со списком продуктов, а другой со списком категорий с утверждениями истина / ложь, когда они должны быть включены. Мой код до сих пор выглядит следующим образом:
function deleteUnavailable() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var rss = ss.getSheetByName("Kategorier");
var rRows = rss.getDataRange();
var rNumRows = rRows.getNumRows();
var rValues = rRows.getValues();
var ass = ss.getSheets()[0];
var aRows = ass.getDataRange();
var aNumRows = aRows.getNumRows();
var aValues = aRows.getValues();
var resultArray = [];
for (var i = 1; i <= aNumRows -1; i++) {
var keep = true;
for (var j = 1; j <= rNumRows -1; j++) {
if (aValues[i][3] == rValues[j][0]) {
if (rValues[j][2] && aValues[i][9] == "JA") {break ;}
else keep = false ; break ;
}
}
if (keep) {
resultArray.push(aValues[i]);
}
}
ass.clear();
ass.getRange(2, 1, resultArray.length, resultArray[0].length).setValues(resultArray);
}
Попытка получить этот код:
for (var i = 1; i <= aNumRows -1; i++) {
var keep = true;
for (var j = 1; j <= rNumRows -1; j++) {
if (aValues[i][3] == rValues[j][0]) {
if (rValues[j][2] && aValues[i][9] == "JA") {break ;}
else keep = false ; break ;
}
}
if (keep) {
resultArray.push(aValues[i]);
}
}
Чтобы скопировать продукты и опубликовать их с этим:
ass.clear();
ass.getRange(2, 1, resultArray.length, resultArray[0].length).setValues(resultArray);
Странно, использование этого кода, но с разными местами размещения, работает в моих тестовых листах, но не в этом. Может кто-нибудь сказать мне, почему этот код оставляет некоторые продукты нетронутыми, когда их условия должны быть ЛОЖНЫМИ в моем заявлении IF?