【问题标题】:How to remove empty arrays from an array of arrays?如何从数组数组中删除空数组?
【发布时间】:2019-05-22 22:56:13
【问题描述】:

我有一个数组数组,其中包括一些空数组。 经验。 [[姓名1],[姓名2],[姓名3],[],[]]

我尝试使用移位和拼接(给出示例代码)

function RemoveEmptyArrays(){
  var NameArray = [[Name1],[Name2],[Name3],[],[]];

  for (i = 0; i < NameArray.length; i++) {
      if ( NameArray[i][0] === undefined ) {
         NameArray.splice(  i, 1 );
      }
  }
  Logger.log(arrayvals);
}

期望的输出:

[ [Name1],[Name2],[Name3] ]

【问题讨论】:

    标签: arrays google-apps-script google-sheets


    【解决方案1】:
    • 您想从[[Name1],[Name2],[Name3],[],[]] 检索到[ [Name1],[Name2],[Name3] ]。

    如果我的理解是正确的,这个示例脚本怎么样?

    示例脚本:

    var NameArray = [["Name1"],["Name2"],["Name3"],[],[]];
    var res = NameArray.filter(function(e) {return e.length})
    console.log(res)

    修改脚本:

    如果你的脚本被修改了,那么这个修改呢?

    var NameArray = [["Name1"],["Name2"],["Name3"],[],[]];
    
    for (i = NameArray.length - 1; i >= 0; i--) { // Modified
      if ( NameArray[i][0] === undefined ) {
        NameArray.splice(i, 1);
      }
    }
    console.log(NameArray);

    参考:

    【讨论】:

      【解决方案2】:

      一个非常简单的方法是使用 ES6 中的 spread operator,然后使用 concat。

      'concat' 将数组连接到另一个数组,扩展运算符获取一个数组并将其传递给函数,就好像它们是参数一样(除其他外)。

      这是一个有效的小提琴

      const arr = [['a', 'b', 'c'], ['d', 'e', 'f'], [] ,[]] ;
      
      const result = [].concat(...arr)
      
      console.warn(result);

      【讨论】:

        猜你喜欢
        • 2019-09-05
        • 2016-04-25
        • 2019-09-11
        • 1970-01-01
        • 2021-12-17
        • 2020-01-01
        • 2013-10-28
        • 2021-08-16
        相关资源
        最近更新 更多