【发布时间】:2021-07-12 20:57:26
【问题描述】:
大家好,我对 zapier (javascript) 的代码有疑问...(我知道,我知道)
我遇到的问题是我从 airtable 中引入我的数据。数据以三个不同的数组形式出现。它们是:
specCategory[]
specName[]
specDescription[]
我遍历数组并用数组中的逗号将它们分开。然后,我将每个数组中的每个值组成它们自己的对象。然后我将该对象推入一个数组中。
我的最终目标是以以下形式将 JSON 有效负载推送到 PDFMonkey:
{
"payload": [
{
specName: "specName data",
specCategory: "specCategory data",
specDescription: "specDescription data"
},
{
specName: "specName data",
specCategory: "specCategory data",
specDescription: "specDescription data"
},
{
specName: "specName data",
specCategory: "specCategory data",
specDescription: "specDescription data"
}
]
}
Zapier 似乎为我返回了正确的有效负载。也就是说,一个对象数组。但是,当我在后续步骤中访问数据时,数据会再次返回到三个不同的数组中。
zapier 代码的输出如下所示。
specArray
1
specCategory
Kitchen Appliances
specName
Gas Hob
specDescription
Westinghouse WHG 643 SA Gas Hob
2
specCategory
Kitchen Appliances
specName
Range Hood
specDescription
Westinghouse WRR 614 SA Range Hood
3
specCategory
Kitchen Appliances
specName
Oven
specDescription
Westinghouse WVE 613 S Oven
4
specCategory
Doors and Windows (Internal)
specName
Architraves
specDescription
42X12min Splayed Profile F/Joint Pine painted gloss
5
specCategory
External Stairs
specName
External Stair Balustrade
specDescription
Painted pre-primed ladies waist handrail with slats and bottom rails (not included if stair is under 1m in height)
相反,在后续步骤中访问它时,我会收到三个不同的数组,例如:
specArraySpecName: specName[1],specName[2],specName[...],
specArraySpecCategory: specCategory[1],specCategory[2],specCategory[...],
specArraySpecDescription: specDescription[1],specDescription[2],specDescription[...]
这是我的代码,因此您可以查看一下我的操作是否有误。当我尝试仅输出对象数组(而不是首先将数组包装在对象标签中)时,它会输出每个对象的单个值,但问题是每次使用每个对象作为输入时,zapier 都会循环后续步骤。
有没有办法对我尝试创建的 JSON 对象进行展平或字符串化?
我的代码如下供参考:
// this is wrapped in an async function
// you can use await throughout the function
let categories = inputData.specCategories.split(/\s*,\s*/);
let names = inputData.specName.split(/\s*,\s*/);
let descriptions = inputData.specDescriptions.split(/\s*,\s*/);
let specArray = [];
// for loop to input each of the discrete items into an array
for (let i = 0; i < categories.length; i++) {
let spec = {
specCategory: categories[i],
specName: names[i],
specDescription: descriptions[i]
specArray.push(spec);
}
output = { specArray };
我提前为格式化道歉,但由于一些格式不正确的代码(尝试 ctrl + k、4 个空格、三次反引号等),堆栈溢出不允许我发布代码块,我无法弄清楚。
感谢您的帮助!
【问题讨论】:
标签: javascript arrays javascript-objects zapier