如何在 Zapier 代码中正确输出 JavaScript 代码

How to output a JavaScript code in Zapier Code properly

我有一个每次生成新的 Facebook LeadAd 时都会触发的 Zap。 在第二步中,我创建了一个 JS 代码,以将 leadad (Adset Name + Term) 的某些字段与具有过滤功能的对象数组中的对象的 属性 相匹配。

示例:

let campaign = inputData.adset_name + inputData.term;

let logic = [
        {
            Campaign: "Adsetname+term",
            Doctors: "Name 1 - Name 2",
            ID: "xxxxxxxx - yyyyyyyy",
            Count: "2",
            Zone: "Neighborhood",
            UF: "City"
        }
//There's a lot of these objects inside the array with other data.
]

let filtro = logic.filter(x => {
    return x.Campaign === campaign;
});


output = [
  {
    ID: filtro.ID,
    UF: filtro.UF,
    Count: filtro.Count
  }
];

此处的主要目标是将传入的广告集名称+术语与数组内确定对象的广告集名称+术语进行匹配,因此它将return链接到该特定对象的其他信息。

但是代码没有将任何信息输出到这个创建的对象中。它运行没有错误,但是 returns 没有对象的数据。

Result of the step test

你知道我做错了什么吗?

在您的代码中,filtro 设置为经过过滤的对象数组:

filtro = [
  {ID: 'asdf', UF: 'qwer'}
]

在您的输出中,您正在访问 filtro.ID,即 undefinedArray 没有 ID 属性.

相反,对于 filtro 中的 每个 项,您可能需要 IDUFCount。在这种情况下,您可以使用 Array.map 函数:

output = filtro.map(item => {
  return {
    ID: item.ID,
    UF: item.UF,
    Count: item.Count
  }
})

这将 return 一个对象数组。如果此代码是一个动作(而不是触发器),后续的 zap 步骤将为您 return 的每个项目 运行。有关详细信息,请参阅 these docs