Как удалить строки в источнике сразу после того, как они были помещены в массив (Sheets) - PullRequest
0 голосов
/ 28 апреля 2020

Как сделать так, чтобы он удалял строки, которые соответствуют критериям и были помещены в массив?

До сих пор я получил следующее, но выдает ошибку «за пределами границ»:

  for (var i = 1; i < values.length; i++) {
         if (values[i][0] == productCode) {
        data.push([values[i][22],values[i][23],values[i][24],values[i][25]]); //This array is for a certain purpose.
        headerData.push(headerValues[i]);//This array is for another certain purpose.
        sheet.deleteRow(i+1); //This is the one I'm having trouble with.    
    } 
  }

На исходном листе у меня есть заголовки

Я видел, что строка удаления действительно работает снизу вверх, но как я могу повторно ссылаться на i строки в этом для l oop?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 апреля 2020

L oop назад:

  for (var i = (values.length-1); i > 0; i--) {
         if (values[i][0] == productCode) {
        data.push([values[i][22],values[i][23],values[i][24],values[i][25]]); //This array is for a certain purpose.
        headerData.push(headerValues[i]);//This array is for another certain purpose.
        sheet.deleteRow(i+1); //This is the one I'm having trouble with.    
    } 
  }
1 голос
/ 28 апреля 2020

Я бы попробовал что-то подобное:

let headerData = []
let data = [];
const headerSize = 1;
for (let i = values.length - 1; i > headerSize; i--) {
  if (values[i][0] === productCode) {
    let row = [values[i][22],values[i][23],values[i][24],values[i][25]] 
    data = [row, ...data]
    headerData = [headerValues[i], ...headerData]    
    sheet.deleteRow(i+1);
  } 
}

использовать массивы деструктурирования, чтобы сохранить значения в порядке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...