首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zapier脚本- for循环

Zapier脚本- for循环
EN

Stack Overflow用户
提问于 2018-02-07 05:01:55
回答 2查看 710关注 0票数 1

我似乎想不通这件事。下面是我的JSfiddle代码,它可以完美地将数据发送到控制台。我知道我的zapier应用程序正在通过身份验证。如果我回来,我会得到200分的成功

代码语言:javascript
复制
var stuff = 
{
    "uri":"some URL here",
    "action":"EXPORT",
    "result":
    {
        "column_order":["Name","email","TimeStamp"],
            "rows":[
                ["ted2","ted2@example.com","06 Feb, 2018 04:37:16"],
                ["jimf","jimf@example.com","06 Feb, 2018 19:03:39"]
                ]
    }
};

var results2 = [];

for (var j = 0; j < stuff.result.rows.length; j++)
{
    var result = {};
for (var i = 0; i < stuff.result.column_order.length; i++)
{
     result['"' + stuff.result.column_order[i] + '"'] = stuff.result.rows[j][i];

  }
  results2.push(result);
}

 console.log(results2);

它会吐出:

代码语言:javascript
复制
{
  "Name": "ted2",
  "email": "ted2@example.com",
  "TimeStamp": "06 Feb, 2018 04:37:16"
}{
  "Name": "jimf",
  "email": "jimf@example.com",
  "TimeStamp": "06 Feb, 2018 19:03:39"
}

现在,如果我尝试将它转换为Zapier Post的投票函数,我总是得到错误: Javascript Exception:TypeError: Cannot read property 'rows' of undefined

这是我的Zapier Post Poll函数。我遗漏了什么?For循环不会有同样的效果。

代码语言:javascript
复制
email_post_poll: function(bundle){
  var response = z.JSON.parse(bundle.response.content);
  var results2 = [];

    for (var j = 0; j < response.result.rows.length; j++)
      {
         var result = {};
         for (var i = 0; i < response.result.column_order.length; i++)
        {
         result['"' + response.result.column_order[i] + '"'] = response.rows[j][i];

        }
        results2.push(result);
  }
   return results2 || [];
}
EN

回答 2

Stack Overflow用户

发布于 2018-02-07 06:36:14

我是David,来自Zapier平台团队。

您的问题在for循环中,您调用的是应该为= response.result.rows[j][i]= response.rows[j][i]。如果这还不清楚,我建议使用console.log来确保您知道响应中的实际内容。

顺便说一句,数组在js中是真的,所以results2 || []永远不会返回右边的空数组。

票数 1
EN

Stack Overflow用户

发布于 2018-02-07 10:58:42

我把它弄好了。bundle.response.content有一个父数组的"response“在所有东西之上。所以我不得不叫“response.response”为所有的事。使用戴夫的console.log建议帮助我解决了这个问题,但您只能在脚本工具中看到控制台日志,然后是“捆绑日志”。我想这只是一个平台的学习曲线。

代码语言:javascript
复制
email_post_poll: function(bundle){
  var response = z.JSON.parse(bundle.response.content);
  var results2 = [];
  console.log(response.response.result.rows.length);

    for (var j = 0; j < response.response.result.rows.length; j++)
      {
         var results3 = {};
         for (var i = 0; i < response.response.result.column_order.length; i++)
        {
         results3['"' + response.response.result.column_order[i] + '"'] = response.response.result.rows[j][i];

        }
        results2.push(results3);
  }
  return results2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48651906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档