【问题标题】:Google Sheets: Return Multi Dimensional Array (JavaScript)Google 表格:返回多维数组 (JavaScript)
【发布时间】:2019-04-12 14:21:31
【问题描述】:

假设我有四个现有数组:

var one =   ["apple","banana","berry"];
var two =   ["fobar", "barfoo", "farboo"];
var three = [13, 421];
var four =  ["seven", "eight", "eleven"];

如何将它们合并为一个数组并以最简单的方式返回? 我得到的是

var 结果 = [一、二、三、四];

导致

|-----------------------------|
|  apple  |  banana  | berry  |  
|  foobar |  barfoo  | farboo |  
|  13     |  421     |        |
|  seven  |  eight   | eleven |
|-----------------------------|

然而,我真正需要的是这个:

|------------------------------------|
|  apple  |  foobar  | 13  |  seven  |
|  banana |  barfoo  | 421 |  eight  |
|  berry  |  farboo  |     |  eleven |
|------------------------------------|

【问题讨论】:

  • 警告那些回答:Google Apps 脚本大致是 ES3(是的,3)加上一些来自 ES5 的标准库功能。 (不过,我听说正在进行更新。)

标签: javascript arrays multidimensional-array google-apps-script google-sheets


【解决方案1】:

试试

var output = one.map(function(e,i){
  return [e].concat([two, three, four].map(function(f){
    return f[i] === undefined ? '': f[i];
  }))
})
console.info(output);

【讨论】:

    【解决方案2】:

    JavaScript 没有多维数组,它有数组的数组。

    如果您还没有 onetwothreefour 数组,则可以使用单个嵌套文字:

    var result = [
        ["apple", "fobar", 13, "seven"],
        ["banana", "barfoo", 421, "eight"],
        ["berry", undefined, "eleven"]
    ];
    

    现场示例:

    var result = [
        ["apple", "fobar", 13, "seven"],
        ["banana", "barfoo", 421, "eight"],
        ["berry", "farboo", undefined, "eleven"]
    ];
    console.log(result);
    .as-console-wrapper {
      max-height: 100% !important;
    }

    如果您已经拥有它们,因为它们是列值数组,显然您希望子数组成为行值,您需要循环:

    var result = [];
    for (var i = 0; i < 3; ++i) {
        result[i] = [
            one[i], two[i], three[i], four[i]
        ];
    }
    

    现场示例:

    var one =   ["apple","banana","berry"];
    var two =   ["fobar", "barfoo", "farboo"];
    var three = [13, 421];
    var four =  ["seven", "eight", "eleven"];
    var result = [];
    for (var i = 0; i < 3; ++i) {
        result[i] = [
            one[i], two[i], three[i], four[i]
        ];
    }
    console.log(result);
    .as-console-wrapper {
      max-height: 100% !important;
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 2016-11-09
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      相关资源
      最近更新 更多