Попытка найти метод, который работает в скриптах Google Apps, сравнить два массива и найти значения, отсутствующие во втором массиве.
Я пробовал несколько подходов, но не могу найти тот, который работает в GAS. В настоящее время выполняется попытка с использованием цикла for () и indexOf ():
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.setActiveSheet(ss.getSheetByName('test'));
function TEST(){
var lastRow = sheet.getLastRow();
var orders = sheet.getRange(2,1,lastRow,1).getValues(); //[a,b,c,d]
var products = sheet.getRange(2, 2,lastRow,1).getValues(); //[a, b]
var missing = [];
for ( var i = 0 ; i < Object.keys(orders).length; i++){
if(products.indexOf(orders[i])<0){
missing.push(orders[i]);};
};
Logger.log(missing); //expect [c, d]
}
Исходная таблица имеет два столбца для сравнения и 3-й столбец, в котором должен храниться новый «отсутствующий» массив.
orders products missing
a a c
b b d
c
d
Я пробовал методы из нескольких других постов, но все используют функции, которые недоступны в Сценариях Google Apps.