Как получить значение поверх массива (i,j) в скрипте Google Apps

avatar
yasoyas
9 августа 2021 в 05:22
64
1
0

Я начинаю использовать скрипт Google

у меня такая дата:

данные результат
1 1
2 1
3 1
2
2
2
3
3
3

используя мой код ниже

function learn(){


  var sheet = SpreadsheetApp.getActiveSheet();
  var cells = sheet.getActiveRange();
  var columnCount = cells.getNumColumns();
  var rowCount = cells.getNumRows();
//cells.getCell(rowCount, columnCount).getValues(writeHello);
var adressrow;
var addresses = sheet.getRange(cells.getRow(), cells.getColumn(), rowCount, columnCount ).getValues();
var i;
Logger.log(addresses);
for (addressRow = 1; addressRow <= rowCount; ++addressRow) {
  var inputt= cells.getCell(addressRow, 1).getValue();
       for ( var i =1;i <= 3;++i) { 

              var tesrange = sheet.getRange(cells.getRow(),2,rowCount,2).setValue(inputt);

               // angka 3 akan di ganti sesuai jumlah parsing JSON

//Logger.log(tesrange);
}
}
/*Logger.log(sheet);
Logger.log(cells);
Logger.log(columnCount);
Logger.log(rowCount);
Logger.log(addresses);
Logger.log(adressrow);*/

}

но результат такой

просмотрите видео

конец данных выглядит так

данные результат
1 3
2 3
3 3
Источник
idfurw
9 августа 2021 в 05:29
1

Каков ваш ожидаемый результат?

Ответы (1)

avatar
soMarios
9 августа 2021 в 06:26
0

Объяснение:

Предположим, что вы хотите получить столбец A в качестве входных данных, а затем получить желаемый результат в столбце B.

Основная идея заключается в использовании fill, которое повторяет определенное число n раз. Это сделает ваш код чище и быстрее.

Решение:

function myFunction() {
  const n = 3; // number of times you want to repeat
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Sheet1");
  const input = sh.getRange("A2:A4").getValues().flat();
  var result = [];
  input.forEach(v=>{
     result.push(Array(n).fill(v));          
  });
  result = result.flat().map(v=>[v]);
  sh.getRange(2,2,result.length,1).setValues(result);
}

Таблица, которая работает со скриптом:

enter image description here