Google Apps Script中向二维数组添加值结果不符合预期的问题
解决Google Apps Script二维数组添加值的格式问题
你的代码输出不符合预期的原因是:fruitArray中的每个元素本身就是一个子数组(比如['apple']),直接将value(即子数组)和"name"一起push到新数组时,会形成三层嵌套的结构。
以下是几种修正方案:
方案1:直接取子数组的第一个元素
通过value[0]获取子数组中的具体值,再和"name"组成新的子数组:
function fruitList() { var fruitArray = [['apple'], ['banana'], ['cherry']]; var newArray = []; fruitArray.forEach(function(value) { newArray.push([value[0], "name"]); }); Logger.log(newArray); // 输出:[ [ 'apple', 'name' ], [ 'banana', 'name' ], [ 'cherry', 'name' ] ] }
方案2:使用扩展运算符展开子数组
利用ES6扩展运算符...展开原有的子数组,再追加"name",这种方式更灵活(即使原数组的子数组有多个元素也适用):
function fruitList() { var fruitArray = [['apple'], ['banana'], ['cherry']]; var newArray = []; fruitArray.forEach(function(value) { newArray.push([...value, "name"]); }); Logger.log(newArray); }
方案3:用map方法简化代码
map方法可以直接遍历数组并返回处理后的新数组,代码更简洁:
function fruitList() { var fruitArray = [['apple'], ['banana'], ['cherry']]; var newArray = fruitArray.map(value => [...value, "name"]); // 也可以写成:value => [value[0], "name"] Logger.log(newArray); }
内容的提问来源于stack exchange,提问作者MeesterZee
相关产品推荐
相关产品推荐

