如何在Google Apps Script中将二维数组追加到另一二维数组末尾
问题根因
Array.push() 方法接收的参数会作为单个元素追加到数组末尾,你直接传入整个data2二维数组,等于把data2整体当成一个元素塞进data1,自然会多一层嵌套生成三维数组。
修复方案
可根据使用场景选择以下任意一种方法:
- 方案1:使用展开运算符(推荐,ES6+ 支持,Google Apps Script 运行环境完全兼容)
把push的参数用...展开,将data2里的每一行子数组拆成独立元素追加:
function test() { var data1 = [['AAPL', 'Strong'], ['MSFT', 'Strong']]; var data2 = [['TSLA', 'Weak'], ['VZ', 'Neutral']]; var output = data1; output.push(...data2); console.log(output); }
- 方案2:使用concat()方法(不修改原数组)
concat会把两个数组的元素拼接后返回新数组,不会改动原有的data1:
function test() { var data1 = [['AAPL', 'Strong'], ['MSFT', 'Strong']]; var data2 = [['TSLA', 'Weak'], ['VZ', 'Neutral']]; var output = data1.concat(data2); console.log(output); }
- 方案3:循环遍历追加(兼容性最好)
遍历data2的每一行,逐个push到目标数组里:
function test() { var data1 = [['AAPL', 'Strong'], ['MSFT', 'Strong']]; var data2 = [['TSLA', 'Weak'], ['VZ', 'Neutral']]; var output = data1; data2.forEach(row => { output.push(row); }) console.log(output); }
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

