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)
请仔细阅读有关方法的文档splice()。当在 上调用时Array,它需要三个可能的参数:
start-Array起始元素的索引;deleteCount- 从 开始删除的元素数start;item- 用于替换已删除值的逗号分隔值列表。场景1
当您使用两个参数调用它时splice(1,1),该方法从索引 1 ( [1.0, AA1, BB1]) 开始,仅删除此元素并将其替换为任何内容,从而按预期改变原始元素Array。
场景2
该方法还将您删除的所有元素作为单独的返回Array,如果您想返回原始Array(由 变异splice()),则需要删除var result并直接返回arr1。
有用的链接
splice()方法参考;| 归档时间: |
|
| 查看次数: |
8210 次 |
| 最近记录: |