对于这个问题,我已经浏览了很多类似的答案,但是还没有任何可行的解决方案。
我有两个单独的函数,每个函数都有一个数组,我将其填充为:
folderMap.push([{siteurl: filename,logid: fileurl}]);
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;
}, {});
什么都没有输出,但我知道两个源数组中至少应有三个项目。怎么了?
答案 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
来更新值。