按行索引从值数组中删除一行

xyz*_*xyz 1 javascript arrays google-sheets google-apps-script

我想按行索引从数组中删除行

我有

function test() {
arr1 = [[Id, From, To], [1.0, AA1, BB1], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

arr1.splice(1,1);
return arr1
}
Run Code Online (Sandbox Code Playgroud)

我明白了

[[Id, From, To], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]
Run Code Online (Sandbox Code Playgroud)

这就是我想要的

但如果我有

function test() {
var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
arr1 = [[Id, From, To], [1.0, AA1, BB1], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

var result = arr1.splice(1,1);

sht.getRange(1,1,result.length,result[0].length).setValues(result)
}
Run Code Online (Sandbox Code Playgroud)

我明白了

result = [[1.0, AA1, BB1]]
Run Code Online (Sandbox Code Playgroud)

我不明白发生了什么事,我该如何得到

result = [[Id, From, To], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]
Run Code Online (Sandbox Code Playgroud)

Ole*_*ter 5

请仔细阅读有关方法的文档splice()。当在 上调用时Array,它需要三个可能的参数:

  1. start-Array起始元素的索引;
  2. deleteCount- 从 开始删除的元素数start
  3. item- 用于替换已删除值的逗号分隔值列表。

场景1

当您使用两个参数调用它时splice(1,1),该方法从索引 1 ( [1.0, AA1, BB1]) 开始,仅删除此元素并将其替换为任何内容,从而按预期改变原始元素Array

场景2

该方法还将您删除的所有元素作为单独的返回Array,如果您想返回原始Array(由 变异splice()),则需要删除var result并直接返回arr1

有用的链接

  1. splice()方法参考