【问题标题】:Loop through multidimensional array and split | Google Apps Script循环遍历多维数组并拆分 | Google Apps 脚本
【发布时间】:2021-04-19 12:23:27
【问题描述】:

循环遍历多维数组时我需要帮助。我有两列 A 和 B,在 Google 表格中,我需要将它们用作搜索名称和文件夹 ID。但是,在搜索名称栏中有多个名称。例如

Search Name Folder ID Other Columns...
EX3264 hdushfush -
EX8347,EX9384, EX273 dsjuhdujfh -
EX374,EX009 dndddda -

我希望能够在两列之间循环并分隔搜索名称,这些名称用逗号分隔。分开后,我想用最终的数组来表示:如果在邮件主题中找到搜索名称,则将其移动到 ID 在同一数组中的文件夹中。

所以最终的数组应该是:

Data (Array 3) 
[0] Array 2: 
   0: 'hdushfush' 
   1: 'EX3264'
[1] Array 4:
   0: 'dsjuhdujfh' 
   1: 'EX8347'
   2: 'EX9384'
   3: 'EX273' 
... 

到目前为止,我所拥有的和有效的方法是分别拆分搜索名称并一一命名文件夹(使用 getFolderByName),但想法是在数组内进行交互。

  var finalarray = [{}];
    for (var j = 1; j <= sheet.getRange("a2:b5").getValues().length; j++) {
      var testcol = sheet.getRange("d" + (j +1)).getValue();
      var tt = testcol.split(",");
      finalarray[j - 1] = tt;
    }
...

          for (var k = 0; k < tt.length; k++) {
            if (filename.indexOf(tt[k]) !== -1) {
              folderName = folder1;
            } else {
              folderName = folder2;
            }

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    您的预期结果格式有点不寻常,但试试这个:

    function weirdArray() {
      const data = SpreadsheetApp.getActive().getRange('A2:B5').getValues();
      return data.map(row => [row[1], ...row[0].split(',')]);
    }
    

    【讨论】:

    • @doubleunary 很奇怪,但是如果数组不是分开的,由于某种原因 indexOf 不能按预期工作。这样就可以了,现在我只需要弄清楚如何让它查看“如果它是 indexOf”的正确编译,将其发送到同一数组中的文件夹 ID。谢谢!
    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    相关资源
    最近更新 更多