2017-01-14 28 views
0

私はajax-callを実行しています。これは配列を返します。JSループからAJAXレスポンス配列までの配列、データの取得方法は?

image for clarification - response in console

私は対応 - これらの配列のそれぞれの要素を作成するには、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]を使って入れ子配列のデータに到達することはできません。

私はループを行う方法をいくつか試してみましたが、いくつかの(ランダムな)数字がありましたが、必要な値に近いものはありませんでした。

+2

あなたがそれが何であると思うかではなく、 'entry'とは何かを記録しようとしてください。配列の 'for 'も使わないでください。 – charlietfl

+0

私はTwig(PHP)に慣れているので、このミスを犯しました!この方法はうまくいくようです: 'var arrayLength = data.length; for(var i = 0; i

+0

ajax関数の属性としてdataTypeを追加しようとしましたか? dataType: 'json' あなたがアクセスしたいキーの間に「tablename」「 –

答えて

1

forループを使用することはできますが、foreachを使用するとより洗練されたものが得られます。ネストされたオブジェクト(注:オブジェクト、配列ではない)に関しては、インデックスにアクセスしようとするのではなく、そのプロパティを呼び出すことによってアクセスします。一緒にあなたを助けるべきであるjsの箱がここにある! ;)あなたは自分のAJAX応答関数にdata.forEachセクションをドロップすることができるはずです(成功:機能(データ){})

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>"); 
    }) 

ご質問や、あなたが必要とする他のヘルプだけを私にそれらを発火させてください:

+0

ありがとうございました! –

+0

レコードについては、ここには3つの方法がありますが、これは動作していないものも含めて、理由を理解できるはずですが、詳細を知りたい場合は、 https://jsbin.com/nimuluqoho/edit?js,output –

+0

ありがとう、これは本当に便利です! –

関連する問題