У меня огромная проблема: я создаю скрипт, который получает значение из таблицы HTML и сравнивает его в GS-скрипте. Как выглядит скрипт HTML (он вызывается с событием "oninput"):
function testhandler(i){
var ref = document.getElementById('ref'+i).textContent;
var lot = document.getElementById('lot'+i).textContent;
var newref = ref.replace ('\xa0','');
var newlot = lot.replace ('\xa0','');
google.script.run.withSuccessHandler(LigneSup).withUserObject(i).ajoutLot(newref,newlot)
}
Затем в GS я нахожу "newref" в таблице GSheet и нахожу все связанные "lot" к нему (и я создаю список этих лотов, кроме "newlot"):
function ajoutLot (RP, lotexist){
var listeLot=[];
var s =SpreadsheetApp.getActive();
var sheet = s.getSheetByName("Stocks");
var Lots=sheet.getRange('B2:B').getValues();
sheet.getRange("A2:A").setNumberFormat("@");
var RPList =sheet.getRange("A2:A").getValues();
var RealRP = RPList.reduce(function(ar, e) { if (e[0]) ar.push(e[0]); return ar;}, []);
for (var i=1;i<=RealRP.length;i++){
if (RP==RealRP[i-1] && Lots[i]!=lotexist){
listeLot.push(Lots[i]);
}
}
if (listeLot.length ==0){
listeLot=["Nothing"];
}
var Out = listeLot;
return (Out);
}
(для вашего понимания RP = ref)
Тогда у меня "Out" идет в Сценарий "Lignesup" в HTML, и я должен проверить, находится ли значение в входе HTML в массиве "Out".
Прежде всего: Lignesup не работал должным образом, потому что элементы " Out "не были поняты как строки (но элементы были" L1 "," L2 ".. et c). Поэтому мне пришлось форсировать строковый тип, создавая вторичный список, в который я помещал элементы Out: StringList.push(String(Elemlist))
) Это первое, что я не понимаю
Другое: «newlot» все еще находится в массиве «Out», но, как вы видели в моих сценариях, это не должно быть!
Не могли бы вы помочь мне с этим? Спасибо!