【问题标题】:Loop through an array of urls and pass them to get_json, return the new array of datas [duplicate]遍历一个url数组并将它们传递给get_json,返回新的数据数组[重复]
【发布时间】:2016-10-02 06:47:55
【问题描述】:

我不知道如何遍历一个 url 数组并将它们传递给 getJSON,最终返回新的数据数组。

var data_num=[];
$.each(arr_urls, function( index, value ) {          
    $.getJSON(arr_urls[index], function (data) {});
    data_num.push(data);
});
alert(data_num);

【问题讨论】:

  • 你必须在回调的pushdatainside
  • 我原来也是这样做的,但是好像不行。
  • 是的,它有效。你的代码的另一个问题是你alert数组回调被执行。所以data_num在你运行的时候总是空的。
  • 如果响应顺序无关紧要,请使用stackoverflow.com/questions/5627284/… 但是您首先要了解异步调用的工作原理
  • 也相关:stackoverflow.com/questions/3709597/…。有十亿个关于 jQuery、Ajax 和异步的问题。请使用搜索。

标签: javascript jquery arrays foreach getjson


【解决方案1】:
var data_num=[];
$.each(arr_urls, function( index, value ) {

  $.getJSON(arr_urls[index], function (data) {
      data_num.push(data);
      alert(data_num);
  });
});

像这样将你的推送器和警报放在回调中。

【讨论】:

  • 虽然这不是错误的,但不清楚操作应该如何访问最终数组。
  • 通过键'data_num.key'就像它是用户数据然后'data_num.name',另一种方式是通过索引data_num[i]
  • 感谢 Felix 引导我使用 jQuery。什么时候,在这种情况下检索它是不是一个好方法?
【解决方案2】:

你为什么不能这样做:

var jsonData = JSON.stringify(arr_urls);

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2011-08-21
    相关资源
    最近更新 更多