我想按行索引从数组中删除行
我有
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]]
谢谢
答案 0 :(得分:3)
请仔细阅读有关npm run deploy
方法的文档。在splice()
上调用时,它采用三个可能的参数:
Array
-从start
元素开始的索引; Array
-从deleteCount
开始要删除的元素数; start
-逗号分隔的值列表,用于替换删除的值。场景1
在使用两个参数item
调用它时,该方法从索引1(splice(1,1)
)开始,仅删除该元素并将其替换为空,变异 [1.0, AA1, BB1]
符合预期。
场景2
该方法还会返回作为单独的Array
删除的所有元素,如果要返回原始的Array
(由Array
突变),则将需要删除splice()
并直接返回var result
。
有用的链接
arr1
方法reference;