拆分数组并循环到 post 到网络挂钩端点

Split arrays and loop through to post to web hook endpoint

我试图从等长的 CSV 字符串中获取一些数据并拆分成数组,然后通过 Zapier 按顺序循环遍历这些数组到 post 单独的行到 JSON。

这是我当前的代码 - 为了便于理解,我在前 3 行输入了简化的 CSV 字符串:

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 获得一些帮助,但无济于事。这对我来说似乎不是一个高级概念,但这超出了我的基本理解。非常感谢任何指导。

三期:

  1. 您需要一个包含循环中创建的每个 payload 的数组。否则,您使用 fetch() 发送的 payload 将只是在 for() 循环
  2. 中创建的最后一个对象
  3. 摆脱 [] 包装对象中每个 属性 的值
  4. 您的循环迭代必须小于数组长度而不是 <=,因为长度是从 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

在您的有效负载变量中,您将每个 属性 作为数组传递。要获得所需的输出,只需将其更改为:

for (var i = 0; i <= workorder.length; i++) {
    var payload = {
        workorder: workorder[i],
        lat: lat[i],
        long: long[i]
    };
}

您需要在 for 循环中调用 fetch 或将负载存储在数组中并推送到它。

也不要忘记将循环更改为仅 < 而不是 <= 因为 i = 0 最后的结果将未定义。