Google AppScript如何在数组中插入列?寻求批量实现方法
在Google App Script中给数组插入列的实现方法
核心思路
数组的每行是独立元素,批量插入列的本质是对每一行进行元素插入/重组,利用数组高阶函数可以实现简洁的批量处理,无需手动编写复杂循环。
场景1:原数组是二维数组
如果原始数据已经是结构化的二维数组(比如从表格读取的范围数据):
方法1:map + splice(支持任意位置插入)
// 原始二维数组 const originalArray = [ ['A', '1'], ['B', '2'], ['C', '3'], ['D', '4'] ]; // 批量处理每行,在索引1的位置插入新元素 const modifiedArray = originalArray.map(row => { // 复制原行,避免修改原数组(可选,按需保留原数组) const newRow = [...row]; // splice(插入位置, 删除元素数量, 要插入的元素) newRow.splice(1, 0, `${row[0]}${row[1]}`); return newRow; });
方法2:直接构造新数组(更简洁高效)
如果仅需固定位置插入,直接重组每行元素即可,无需splice:
const modifiedArray = originalArray.map(row => [ row[0], // 原第一列 `${row[0]}${row[1]}`, // 新插入的列 row[1] // 原第二列 ]);
处理后modifiedArray的结构:
[ ['A', 'A1', '1'], ['B', 'B2', '2'], ['C', 'C3', '3'], ['D', 'D4', '4'] ]
场景2:原数组是带分隔符的字符串数组
如果原始数据是例子中用;分隔的字符串数组,先分割再处理:
// 原始字符串数组 const originalStringArray = [ 'A ; 1', 'B ; 2', 'C ; 3', 'D ; 4' ]; // 分割字符串并插入新列,最终转回字符串格式 const modifiedStringArray = originalStringArray.map(str => { // 分割并去除元素前后空格 const [col1, col2] = str.split(' ; ').map(item => item.trim()); // 重组为目标格式的字符串 return `${col1} ; ${col1}${col2} ; ${col2}`; });
处理后modifiedStringArray的内容:
[ 'A ; A1 ; 1', 'B ; B2 ; 2', 'C ; C3 ; 3', 'D ; D4 ; 4' ]
内容的提问来源于stack exchange,提问作者Houcem Fattah
相关产品推荐
相关产品推荐

