【发布时间】:2014-11-21 14:07:50
【问题描述】:
我在将数组组合成一个数组然后用下面的代码翻转它时遇到了一些麻烦。目标是在电子表格的一列中设置一组值。在 titleArray 函数之后,我想让一个数组分布在一行的多列中。然后,使用我在另一个 Stack Overflow 线程 (Google Spreadsheet Script - How to Transpose / Rotate Multi-dimensional Array?) 中找到的函数,我想翻转数组,使其分布在一列的多行中。当前代码为 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);
【问题讨论】:
-
最后一行更改为
transposeArray(titleArray());会发生什么? -
每个值都与另一个数组中的对应值配对。在第一个函数之后,我看到类似这样的内容... [[,array1value1,array1value2,array1value3],[array2value1,array2value2,array2value3]] 然后在第二个函数之后,我看到类似这样的内容... [[, ], [array1value1,array2value1],[array1value2,array2value2],[array1value3,array2value3]]
标签: javascript arrays google-apps-script google-sheets