JavaScript向二维数组指定位置插入列的优雅实现方案咨询
实现方案
最优的做法是先在内存中处理完二维数组结构,再一次性写入表格,仅调用1次表格写入接口,性能和可读性都最好。
方案1:无副作用(不修改原数组)
如果你需要保留原始的currentClass数组,推荐用展开运算符+切片的方式生成新数组:
const y = ["result 4", 11, 12, 13]; // 遍历每一行,在索引1的位置插入新列对应值 const newClass = currentClass.map((row, rowIndex) => [ ...row.slice(0, 1), // 取前1个元素(StudentNames) y[rowIndex], // 插入新列当前行的值 ...row.slice(1) // 拼接原来从索引1开始的剩余元素 ]); // 写入时列数从4改为5即可 spreadsheet.getSheetByName("IST Green") .getRange(1, 1, newClass.length, 5) .setValues(newClass);
方案2:极简写法(直接修改原数组)
如果你不需要保留原始的currentClass数据,可以用splice直接在原数组插入,代码更短:
const y = ["result 4", 11, 12, 13]; // 直接在每一行的索引1位置插入对应值 currentClass.forEach((row, index) => row.splice(1, 0, y[index])); // 写入时列数调整为5 spreadsheet.getSheetByName("IST Green") .getRange(1, 1, currentClass.length, 5) .setValues(currentClass);
注意事项
插入列后总列数从4变成了5,所以getRange的最后一个参数(总列数)一定要从原来的4改成5,否则会丢失最后一列result1的数据。
内容的提问来源于stack exchange,提问作者globalzen
相关产品推荐
相关产品推荐

