二维子数组索引谷歌脚本

jas*_*son 3 google-sheets google-apps-script

我在使用应用程序脚本的谷歌电子表格中有二维数组问题。

我知道要使代码最快,我应该尽可能少地使用 get 和 set 函数。所以我试图首先将整个工作表读入一个二维数组,然后引用它的一部分。除了我不确定如何引用二维数组。

这是我到目前为止所做的。

var ss = SpreadsheetApp.getActiveSpreadsheet()
var COMPANYIOSheet=ss.getSheetByName("Sheet1"); 
var IO_array= COMPANYIOSheet.getRange("A1:c10").getValues();
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情:

var subarray=IO_array[3:5][1];
Run Code Online (Sandbox Code Playgroud)

但这不起作用。我似乎只能引用一点,即:

var subarray=IO_array[3][1];
Run Code Online (Sandbox Code Playgroud)

我如何切片成一个子二维数组?

谢谢。

Ada*_*amL 5

我如何切片成一个子二维数组?

通过使用slice(). ;-)

var subarray=IO_array.slice(2, 5);
Run Code Online (Sandbox Code Playgroud)

然后就可以参考了subarray[i][1]。如果您需要创建一个只有“第二列”的新数组,则需要使用一些迭代。


编辑:添加到 Serge 的添加中,并回复您的评论,这是从数组返回 2D 子数组的一般方法:

function slice2d(array, rowIndex, colIndex, numRows, numCols) {
  var result = [];
  for (var i = rowIndex; i < (rowIndex + numRows); i++) {
    result.push(array[i].slice(colIndex, colIndex + numCols));
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)