我试图从等长的CSV字符串中取出一些数据并拆分成数组,然后依次循环遍历这些数组,通过Zapier将各行发布到JSON。
这是我目前的代码 - 为了便于理解,我输入了简化的CSV字符串作为前3行:
var inputDataworkorders = "a,b,c,d,e,f"
var inputDatalats = "g,h,i,j,k,l"
var inputDatalongs = "m,n,o,p,q,r"
var workorder = inputDataworkorders.split(',')
var lat = inputDatalats.split(',')
var long = inputDatalongs.split(',')
var otherUrl = 'https://webpage.com/catch/13579/'
for (var i = 0; i <= workorder.length; i++) {
var payload = {
workorder: [workorder[i]],
lat: [lat[i]],
long: [long[i]],
};
}
fetch(otherUrl, {
method: 'POST',
body: JSON.stringify(payload)
}, callback)
.then(res => res.json())
.then(json => {
callback(null, json);
console.log(json)
});
我想要的是第一个循环:
{workorder: "b",
lat: "h",
long: "n"}
这是第二个循环,依此类推:
{workorder: "a",
lat: "g",
long: "m"}
我已经阅读了我可以找到的所有可能的帮助文章,并且也试图通过Freelancer获得一些帮助,但无济于事。它对我来说似乎不是一个先进的概念,但这超出了我的基本理解。非常感谢任何指导。
答案 0 :(得分:0)
三个问题:
payload
的数组。否则,您使用payload
发送的fetch()
将只是for()
循环中创建的最后一个对象[]
包装对象中每个属性的值<=
,因为长度是从1开始的计数,但数组索引从零开始。如果你进行<=
最后一次迭代,则射击数组的长度
var inputDataworkorders = "a,b,c,d,e,f"
var inputDatalats = "g,h,i,j,k,l"
var inputDatalongs = "m,n,o,p,q,r"
var workorder = inputDataworkorders.split(',')
console.log(workorder)
var lat = inputDatalats.split(',')
var long = inputDatalongs.split(',')
var otherUrl = 'https://webpage.com/catch/13579/'
// array to store all `payload` objects
var results =[];
for (var i = 0; i < workorder.length; i++) {
var payload = {
workorder: workorder[i],
lat: lat[i],
long: long[i],
};
results.push(payload)
}
console.log(results)
// now send `results` array to server
&#13;
答案 1 :(得分:0)
在有效负载变量中,您将每个属性作为数组传递。要获得所需的输出,只需将其更改为:
for (var i = 0; i <= workorder.length; i++) {
var payload = {
workorder: workorder[i],
lat: lat[i],
long: long[i]
};
}
您需要在for循环中调用fetch或将有效负载存储在数组中并推送到它。
另外,请不要忘记将循环更改为&lt; 而不是&lt; = ,因为i = 0,最后的结果将是未定义的。< / p>