Google AppScript-基于键合并数组

时间:2019-12-02 18:03:38

标签: javascript arrays google-apps-script

对于这个问题,我已经浏览了很多类似的答案,但是还没有任何可行的解决方案。

我有两个单独的函数,每个函数都有一个数组,我将其填充为:

  1. folderMap.push([{siteurl: filename,logid: fileurl}]);
  2. mapping.push([{siteurl: x[0],shareddriveid: x[1]}]);

我想要第三个函数,我想基于siteurl匹配项目,并将该对象放在一个数组中,同时将不具有所有三个项目(siteurl,logid和shareddriveid)放入另一个。源阵列将具有不同的大小。我当前的代码如下:

  const combined = folderMap.concat(mapping);
  const applicable = combined.filter(i => i[0]['siteurl'] && i[0]);
  const byTeamUrl = combined.reduce((acc, item) => {
      acc[item['siteurl']] = Object.assign(acc[item['siteurl']] || {}, item);
      if (item.length > 2) {
        Logger.log(item);
        }
      return acc;
  }, {});

什么都没有输出,但我知道两个源数组中至少应有三个项目。怎么了?

2 个答案:

答案 0 :(得分:1)

Google Apps脚本当前不支持ECMAScript 2015(ES6)。因此,箭头功能将不起作用。

每个Google文档:Basic JavaScript Features

查看此答案:https://stackoverflow.com/a/51628532/8245557

但是,您可以使用扣环Develop Apps Script using TypeScript

在TypeScript中开发Apps脚本。

答案 1 :(得分:0)

当我本应推送字段时,我正在将数组推送到对象。我还重新格式化了代码,以便将同一对象从功能1传递到功能2,其中功能2使用findIndex来更新值。