Javascript 如何将数组的值设置为行?

Javascript 如何将数组的值设置为行?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我不明白如何将数组的值设置为Google Sheets中.map之后的目标行范围 函数chekItNow(){ let sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const arrVals=sheet.getRange(1,1,7,4).getValues(); Logger.log(arrVals); for(设i=0;ix*5); Logger.log(nextVals); 设targetRange=sheet

我不明白如何将数组的值设置为Google Sheets中
.map
之后的目标行范围

函数chekItNow(){
let sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const arrVals=sheet.getRange(1,1,7,4).getValues();
Logger.log(arrVals);
for(设i=0;i<6;i++){
常数nextVals=arrVals[i].map(x=>x*5);
Logger.log(nextVals);
设targetRange=sheet.getRange(1,5,7,4);
targetRange.setValues(nextVals);
}
}

我是JS的新手。很遗憾,找不到有关它的信息

您需要映射外部和内部阵列:

const rg = sheet.getRange(1, 1, 7, 4);
const arrVals = rg.getValues();
rg.setValues(arrVals.map(row => row.map(col => col*5)))
另请参见

方法需要一个二维数组作为参数,其中外部数组维度用于行,内部维度用于列。在设置值之前,首先需要使用每个行数组填充
for
循环中的
nextVals
数组,这些数组是在每次迭代中从
.map
函数获得的。我测试了以下代码并成功运行:

function chekItNow() {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const arrVals = sheet.getRange(1, 1, 7, 4).getValues();
  let nextVals=[];

  Logger.log(arrVals);
  for (let i = 0; i < arrVals.length; i++) {
    nextVals.push(arrVals[i].map(x => x * 5));
  }

  Logger.log(nextVals);
  let targetRange = sheet.getRange(1, 5, 7, 4);
  targetRange.setValues(nextVals);
}
函数chekItNow(){
let sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const arrVals=sheet.getRange(1,1,7,4).getValues();
设nextVals=[];
Logger.log(arrVals);
for(设i=0;ix*5));
}
Logger.log(nextVals);
设targetRange=sheet.getRange(1,5,7,4);
targetRange.setValues(nextVals);
}