const inString = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
let data = JSON.parse(inString);
let outData = [];
let outDataElem = [];
for (let i in data){
let el = data[i];
if(!el){ // Если 0
if(outDataElem.length){ // Если outDataElem уже что-то содержит
outData.push([...outDataElem]);
};
outDataElem = [];
continue;
};
outDataElem.push(el);
};
if(outDataElem.length){
outData.push([...outDataElem]);
};
console.log(outData);
/**
* Возникает при изменении ячейки
* @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
* [ ProgrammerForever (c) 2020 ]
* @return Не возвращает значений
*/
function onEdit(event) {
var as = event.source.getActiveSheet();//Текущий лист
var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
var row = event.range.getRow(); //Номер строки
var col = event.range.getColumn(); //Номер столбца
var newValue = event.value; //Новое значение
var oldValue = event.oldValue; //Старое значение
var userEmail = event.user.getEmail();//Пользователь(работает только при вручную назначенном триггере)
let archiveSheetName = "sheet";
let ss = SpreadsheetApp.getActiveSpreadsheet();
let archiveSheet = ss.getSheetByName(archiveSheetName) || ss.insertSheet(archiveSheetName);
archiveSheet.appendRow([new Date(), userEmail, as.getName(), address, oldValue, newValue]);
};
let range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName().getDataRange();
let values = range.getValues();
const formatDate = (date) => Utilities.formatDate(date, "GMT+3", "dd.MM.yyyy");
let now = formatDate(new Date());
let newValues = values.map(row=>{
let [date, ...rest] = row;
let formattedDate = formatDate(date);
return now===formattedDate?[now, ...rest]:row;
});
range.setValues(newValues);