繁体   English   中英

如何使用 GAS 从数组的 arrays 中删除多个元素?

[英]How to remove multiple elements from arrays of an array using GAS?

问题

我有一个包含空列的数据集。 该数据集是通过定义范围的getValues()获得的。 由于我将存储此数据集,因此我想在此之前删除空列,因此需要删除这些列。

数据集样本

[
["120/1","2022-02-01T03:00:00.000Z","2022-02-01T03:00:00.000Z","Cartão Crédito","","Sicredi","","Visa","","1 + 6x","","1 de 7",100],
["120/2","2022-02-01T03:00:00.000Z","2022-03-01T03:00:00.000Z","Cartão Crédito","","Sicredi","","Visa","","1 + 6x","","2 de 7",100]
]

邪恶的代码片段(对我来说)

const colsVazias = [11, 9, 7, 5];//"Columns/elements" to be removed
    for (let i = colsVazias.length - 1; i >= 0; i--) {
      for (let r = 0; r < pagtos.length; r++) {
        pagtos[r].splice(colsVazias[i], 1)
      }
    }

我也试过这个(借自@nnnnnn),但我无法调整它以满足这里的需求。 很可能,因为我们在这里处理不同的维度......

var valuesArr = ["v1","v2","v3","v4","v5"],
    removeValFromIndex = [0,2,4];    

for (var i = removeValFromIndex.length -1; i >= 0; i--)
   valuesArr.splice(removeValFromIndex[i],1);

预期 output:

[
["120/1","2022-02-01T03:00:00.000Z","2022-02-01T03:00:00.000Z","Cartão Crédito","Sicredi","Visa","1 + 6x","1 de 7",100],
["120/2","2022-02-01T03:00:00.000Z","2022-03-01T03:00:00.000Z","Cartão Crédito","Sicredi","Visa","1 + 6x","2 de 7",100]
]

感谢任何帮助!

一个简单的地图/过滤器组合就可以了

 let pagatos = [ ["120/1","2022-02-01T03:00:00.000Z","2022-02-01T03:00:00.000Z","Cartão Crédito","","Sicredi","","Visa","","1 + 6x","","1 de 7",100], ["120/2","2022-02-01T03:00:00.000Z","2022-03-01T03:00:00.000Z","Cartão Crédito","","Sicredi","","Visa","","1 + 6x","","2 de 7",100] ]; let remove = [10, 8, 6, 4] pagatos = pagatos.map(p => p.filter((v,i) =>.remove.includes(i))) console.log(pagatos)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM