【问题标题】:JS Loop through AJAX-response array filled with arrays, how to get the data?JS循环通过AJAX-response数组填充数组,如何获取数据?
【发布时间】:2017-01-14 16:12:13
【问题描述】:

我正在做一个 ajax 调用,它返回一个数组。这个返回的数组由数组组成,每个数组中都有另一个数组:

我正在尝试在 javascript 中执行 for 循环,为响应数组中的每个数组创建一个元素。我的代码:

        $.ajax({
        url: $("base").attr('href') + 'json/handler',
        data : data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            console.log(data);
            for(var entry in data) {

            $('#testdiv').prepend("<span class='test' data-unixtime='" + entry[2] + "'>" + entry[0] + "</span><br>");

            }

entry[0]entry[2] 只返回一个(随机)数字。我似乎也无法使用entry[1][tablename] 访问嵌套数组中的数据。

我尝试了多种执行循环的方法,并从中得到了一些不同的(随机?)数字,但没有什么能接近我需要的值。

【问题讨论】:

  • 尝试记录entry 是什么,它不是你想的那样。也不要在数组上使用for in
  • 我习惯了 Twig (PHP),所以我犯了这个错误!这种方式似乎可行:var arrayLength = data.length; for (var i = 0; i &lt; arrayLength; i++) { alert(data[i]); 谢谢!
  • 您是否尝试将 dataType 添加为 ajax 函数的属性? dataType:'json' 记得在要访问的键之间加上“”"tablename"

标签: javascript jquery arrays ajax loops


【解决方案1】:

您可以使用 for 循环,但使用更简洁的 foreach 会更好。至于嵌套对象(注意:对象,而不是数组),您可以通过调用它的属性来访问它,而不是尝试访问索引。这是一个可以帮助您的 js bin! ;) 您应该能够将 data.forEach 部分放入您的 ajax 响应函数中(成功:函数(数据){})

https://jsbin.com/dorayeriku/1/edit?html,js,output

   var data = [
  ['10:00', {tablename: 'table1', tableseats: 2}, '1234567'],
  ['11:00', {tablename: 'table2', tableseats: 2}, '1234568'],
  ['12:00', {tablename: 'table3', tableseats: 2}, '1234569'],
          ]


    data.forEach((entry) => {
      $('#testdiv').prepend("<span class='test' data-unixtime='" + entry[2] + "'>time: " + entry[0] + "<br/> tablename: " + entry[1].tablename +"<br/>table seats:" + entry[1].tableseats + "<br/><br/></span><br>");
    })

您有任何问题或需要其他帮助,尽管向我发火 :)

【讨论】:

  • 作为记录,这里有所有三种方法,包括你的不起作用,你应该能够找出原因,但如果你想要更多细节,我很乐意提供帮助。 jsbin.com/nimuluqoho/edit?js,output
猜你喜欢
  • 1970-01-01
  • 2020-05-25
  • 2020-05-01
  • 2011-08-14
  • 2018-08-11
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
相关资源
最近更新 更多