通过行索引Google脚本从数组中删除行

时间:2019-07-14 13:10:37

标签: javascript arrays 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
}

我明白了

[[Id, From, To], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

我想要的是什么

但是如果我有

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)
}

我明白了

result = [[1.0, AA1, BB1]]

我不知道发生了什么,我怎么知道

result = [[Id, From, To], [2.0, AA2, BB2], [3.0, AA3, BB3], [4.0, AA4, BB4], [5.0, AA5, BB5], [6.0, AA6, BB6]]

谢谢

1 个答案:

答案 0 :(得分:3)

请仔细阅读有关npm run deploy方法的文档。在splice()上调用时,它采用三个可能的参数:

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

场景1

在使用两个参数item调用它时,该方法从索引1(splice(1,1))开始,仅删除该元素并将其替换为空,变异 [1.0, AA1, BB1]符合预期。

场景2

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

有用的链接

  1. arr1方法reference;