组合要在 Google 表格中使用的数组

Combining arrays to use in Google Sheets

本文关键字:数组 表格 Google 组合      更新时间:2023-09-26

我在将数组组合成一个数组然后使用以下代码翻转它时遇到了一些问题。目标是在电子表格的一列中设置一个值数组。在 titleArray 函数之后,我希望在一行上将数组分布在多个列中。然后,使用我在另一个堆栈溢出线程中找到的函数(Google 电子表格脚本 - 如何转置/旋转多维数组?),我想翻转数组,使其分布在一列的多行中。当前代码为 array1 中的每个元素返回一个数组,所有元素都在另一个数组中。然后,transposeArray 函数将每个数组中的值组合在一起,1 与 1,2 与 2,依此类推。谁能发现我在这里做错了什么?

var titleArray = function(){
    var output = [];
    for(i=0; i < array1.length; i++){
          if(array1[i].length > 0){   
            var titles = ["",array1[i] + " Data"].concat(array2, array3, array4, array5, array6, array7);
            output.push(titles);
          }
        }
        return(output);
      }
    }
      
    function transposeArray(array){
     var result = [];
     for (var col = 0; col < array[0].length; col++) { // Loop over array cols
       result[col] = [];
        for (var row = 0; row < array.length; row++) { // Loop over array rows
          result[col][row] = array[row][col]; // Rotate
         }
        }
       return result;
      }
    transposeArray(titleArray);

我能够与程序员坐下来,他帮助我解决了这个问题。本质上,我需要使用 concat 方法而不是推送方法。我在此过程的早期尝试使用 concat,但以下面演示的第一种方式而不是第二种方式使用它。我也在下面包含了完整的新代码。

output.concat(titles);
output = output.concat(titles);

var titleArray = function(){
    var output = [];
    for(i=0; i < array1.length; i++){
          if(array1[i].length > 0){   
            var titles = ["",array1[i] + " Data"].concat(array2, array3, array4, array5, array6, array7);
            ouput = output.concat(titles);
          }
        }
        return(output);
      }
    }
      
    function transposeArray(array){
     var result = [];
     for (var col = 0; col < array[0].length; col++) { // Loop over array cols
       result[col] = [];
        for (var row = 0; row < array.length; row++) { // Loop over array rows
          result[col][row] = array[row][col]; // Rotate
         }
        }
       return result;
      }
    transposeArray([titleArray]);