You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单行代码中完成数组初始化及splice修改操作?

问题原因

splice 是数组的原地修改方法,执行后会直接修改调用它的原数组,返回值为被删除的元素组成的新数组,因此你直接链式调用时,赋值给data的是被删除的行内容,而非修改后的原数组。

单行实现方案

方案1:使用slice实现(最推荐)

无需强行使用splice,slice方法完全适配你的需求:它会返回从指定下标到数组末尾的新数组,不会修改原数组,代码简洁无额外变量:

let data = tgSh.getDataRange().getValues().slice(headers.getRow());

方案2:必须使用splice的实现

如果业务逻辑要求必须使用splice操作,可以通过立即执行函数包裹逻辑实现单行,不会污染外部作用域:

let data = (() => { const arr = tgSh.getDataRange().getValues(); arr.splice(0, headers.getRow()); return arr; })();

也可以用逗号运算符实现(严格模式下需提前声明临时变量):

let data, temp; data = (temp = tgSh.getDataRange().getValues(), temp.splice(0, headers.getRow()), temp);

内容的提问来源于stack exchange,提问作者Chris Barrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:27:00