Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zapier-输入数据排序_Zapier - Fatal编程技术网

Zapier-输入数据排序

Zapier-输入数据排序,zapier,Zapier,发生的情况如下: 我在我的Shopify商店中使用了一个非常酷的插件,它允许你按照一系列步骤定制你的产品 说明 问题是,所有这些信息都没有按Zapier排序。本质上,它显示为: 问题 它们以“行项目属性值”和“行项目属性名称”的形式出现,粘贴时以数组的形式出现 我需要做的是将这些名称与其值进行匹配。如果可能,可以在Zapier的GUI中进行选择 因此,与其拥有这些字段和值 "Line Properties Names" -> "Project Title&

发生的情况如下:

我在我的Shopify商店中使用了一个非常酷的插件,它允许你按照一系列步骤定制你的产品

说明

问题是,所有这些信息都没有按Zapier排序。本质上,它显示为:

问题

它们以“行项目属性值”和“行项目属性名称”的形式出现,粘贴时以数组的形式出现

我需要做的是将这些名称与其值进行匹配。如果可能,可以在Zapier的GUI中进行选择

因此,与其拥有这些字段和值

"Line Properties Names" -> "Project Title","Project Description","Ebook Type"....

"Line Items Properties Values" -> "Sherlock Holmes","A story in London..", "Standard Book"...
具有以下字段和值:

"Project Title" -> "Sherlock Holmes"
"Project Description" -> "A story in London.."
"Ebook Type" -> "Standard Ebook"
可能吗

谢谢你抽出时间

更新

为澄清起见

因此,在这个顺序中有3种不同的产品。以[]分隔。产品中的值可能会有所不同,例如,如果客户决定不填写“项目详细信息”字段,则不会显示项目详细信息键和值。基本上导致产品具有不同数量的键和值

下面是一个示例:(正如您所看到的,第一个产品与第二个产品具有不同的值集)

输入数据

Input data Values: ["1","ebook1524837342394","Ebook~~//www.shappify-cdn.com/images/282516/127828455/001_Ebook Technical 325x325 (1).png~~ebook","Technical Ebook","Technical 15K - $450.00","All Inclusive Package - $149.00","Cookbook Instant Pot"],["ebook1524837342394"],["Detective Story based in London......","Sherlock Holmes","No Addons","No Package","10000 Words - $270.00","Fiction Book","Ebook~~//www.shappify-cdn.com/images/282516/127828453/001_Ebook Standard 325x325.png~~ebook","ebook1524837304725","1","https://cdn.shopify.com/s/files/1/0012/8814/2906/uploads/7ddee14d6e5d6c5e4396981d1702c375.jpg"]

 Input data Keys: ["_master_builder","_builder_id","_builder_info","Ebook Type","Word Count","Upgrade","Project Title"],["_builder_id"],["Project Details","Project Title","Addons","Upgrade","Word Count","Ebook Type","_builder_info","_builder_id","_master_builder","Upload your file here"]
我想做什么

我希望将键与它们的值匹配,并能够在Zapier GUI上选择它们

当前输出和建议的代码

预期产出


感谢大家的帮助

这应该可以通过
for
循环实现。试试这个

在中,将第一个框定义为值,第二个框定义为键。运行代码步骤之前,请删除
var inputData…

var inputData={“键”:[“第一”、“第二”、“第三”],
“价值”:[“一”、“二”、“三”]
};
//在粘贴代码步骤之前,请删除上面的行。
//您需要在Zap中对其进行配置。
var乘积={};
对于(变量i=0;i输出=[产品]
啊!所以这比一开始看起来有点棘手,但也不错。有两个陷阱:

  • 您的数据以字符串形式输入
  • 该字符串由多个数组对象组成,但其本身不是有效的数组对象
因此,一旦我们正确地解析了它,就不会太糟糕了

//仅用于zapier之外的测试
//这些是逗号分隔的字符串
常量输入数据={
关键字:“\u master\u builder、\u builder\u id、\u builder\u info、电子书类型、字数、升级、项目标题、\u builder\u id、项目详细信息、项目标题、插件、升级、字数、电子书类型、\u builder\u info、\u builder\u id、\u master\u builder,在此处上载文件”,
值:“1,电子书1524837342394,电子书~~//www.shappify-cdn.com/images/282516/127828455/001——电子书技术325x325(1).png~~ebook,Technical ebook,Technical 15K-$450.00,全包套餐-$149.00,Cookbook Instant Pot,ebook 1524837342394,伦敦侦探小说……,Sherlock Holmes,无插件,无套餐,10000字-$270.00,小说书,电子书~//www.shappify-cdn.com/images/282516/127828453/001\电子书标准325x325x325.png~~ebook,ebook 1524837304725,1,https://cdn.shopify.com/s/files/1/0012/8814/2906/uploads/7ddee14d6e5d6c5e4396981d1702c375.jpg'
}
//数组的长度必须相同
const zipArrays=(a,b)=>{
设res={}
a、 forEach((val,i)=>{
res[val]=b[i]
})
返回res
}
//必须将字符串转换为实际数组
//如果任何数据中有逗号,就会爆炸
const keys=inputData.keys.split(“,”)
const vals=inputData.values.split(',')
//现在我们有了真正的数组
常量结果={}
//将关键点复制到结果上,覆盖旧的关键点
分配(结果、zipArrays(键、VAL))
console.log(结果)
/*
{主建筑商:'1',
_建筑商id:“电子书1524837304725”,
_建筑商信息:“电子书~~//www.shappify-cdn.com/images/282516/127828453/001”——“电子书标准325x325.png~~Ebook”,
“电子书类型”:“小说书”,
“字数”:10000字-270.00美元,
升级:“无软件包”,
'项目名称':'福尔摩斯',
“项目详情”:“伦敦侦探小说……”,
插件:“没有插件”,
'在此处上载您的文件':'https://cdn.shopify.com/s/files/1/0012/8814/2906/uploads/7ddee14d6e5d6c5e4396981d1702c375.jpg' }
*/
//返回结果
因为有很多重复的键,所以输出比输入小。如果希望以不同的方式对输出进行分组,还可以调整此代码以更好地匹配输入


希望有帮助

@fabian-c如果这个答案解决了您的问题,请务必投票并选择正确答案()谢谢Kaycee。我遵循了您的步骤,但似乎有一个错误:我们在发送您的测试时遇到了问题。请再试一次。错误:您必须返回单个对象或对象数组。我已调整代码以在Zapier脚本中工作-需要始终返回数组!看起来要迭代的是键的字符,而不是作为数组项的键。你能用输入、预期输出和你正在使用的代码的更完整版本来更新你的问题,以便它可以作为一个整体来看待吗?评论不是分享的最佳场所。谢谢你参与。我得到一个错误:SyntaxError:JSON中位置1处的意外标记。这个附加注释Object.parse(本机)函数(eval在(/var/task/index.js:52:23)eval(eval在(/var/task/index.js:52:23)eval:25:19)eval(eval在(/var/task/index.js:52:23),:64:20)域。(/var/task/i)