Используйте 5 элементов в каждом l oop из 100 элементов - PullRequest
0 голосов
/ 12 марта 2020

Я получаю данные из листов Google. и хотите добавить запятые к 5 элементам одновременно из 102 элементов. Я тоже не могу разобраться с этим базовым c материалом. Виноват. Также l oop терпит неудачу, когда общее количество элементов не кратно 5. как это сделать ??

я пробовал это:

var SheetValues = currentSheet.getRange("A2:A"+lastRow).getValues();
length = SheetValues.length;
 for (var i=0; i <= length; i=5){
      ids = SheetValues.join(",");
}

1 Ответ

3 голосов
/ 12 марта 2020

Так много всего неправильного.

  1. Условие l oop должно быть i < length. Индексы массива go от 0 до length-1.
  2. i=5 не увеличивают i, они просто устанавливают значение 5. Это должно быть i += 5;
  3. SheetValues.join(",") объединяет весь массив, а не только текущую группу 5. Используйте SheetValues.slice(i, i+5).join(","), чтобы получить только текущую группу.
  4. Вам нужно сделать что-то с ids после его назначения.
for (var i = 0; i < length; i += 5) {
    ids = SheetValues.slice(i, i+5).join(",");
    console.log(ids);
}

Нет проблем, когда длина не кратный 5. Если i+5 больше, чем длина, он будет срезаться только до конца массива. В последней группе будет меньше 5 элементов.

for l oop останавливается всякий раз, когда i >= length. Он не должен точно набирать length.

const SheetValues = [1,2,3,4,5,6,7,8,9,10,11,12,13];
const length = SheetValues.length;
for (var i = 0; i < length; i += 5) {
    ids = SheetValues.slice(i, i+5).join(",");
    console.log(ids);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...