cari

Rumah  >  Soal Jawab  >  teks badan

Mengapa hanya elemen pertama tatasusunan dengan 3 elemen objek boleh diakses?


Terdapat tiga elemen dalam pengembangan status
Kemudian status[0] ialah elemen objek yang saya tolak masukstatus[0]是我push进去的对象元素
然后status[1]status[2]Kemudian status[1] dan status [ 2]Semua jenis yang tidak ditentukan, kenapa?

Berikut ialah kod lengkap Selepas mencubanya beberapa kali, saya rasa ia ada kaitan dengan skop pembolehubah Walau bagaimanapun, hasil pembolehubah tatasusunan adalah di lapisan paling luar luar?

function getStreamsStatus(channels) {
  var results = [];
  $.each(channels, function(index, channel) {
    var result = [];
    // result.push({ name: channel });
    $.getJSON (
      "https://api.twitch.tv/kraken/streams/" + channel,
      {
        Accept: "application/vnd.twitchtv.v5+json",
        client_id: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        callback: ""
      },
      function(data) {
        result.push(data);
        $.getJSON(
          data._links.channel,
          {
            Accept: "application/vnd.twitchtv.v5+json",
            client_id: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            callback: ""
          },
          function(channel_data) {
            result.push(channel_data);
            // console.log(result);
            // console.log(result[0]);
            // console.log(result[1]);
          });
        console.log(result);
        console.log(result[0]);
        console.log(result[1]);
      });
    results.push(result);
    // console.log(result);
    // console.log(result[0]);
    // console.log(result[1]);
  });
  return results;
}
PHP中文网PHP中文网2787 hari yang lalu622

membalas semua(4)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:25:15

    Ajax ialah proses tak segerak, dan fungsi panggil balik dilaksanakan selepas data diambil
    Dan keputusan anda.push(hasil) sepatutnya telah ditolak masuk sebelum data diambil semula
    Jadi apabila anda menyemaknya, ia belum lagi Push ke dalam tatasusunan data
    Anda perlu menunggu sehingga data dimuatkan sebelum anda boleh melihat data dalam konsol
    Perkara yang sama berlaku untuk sarang Ajax sebelumnya

    balas
    0
  • PHPz

    PHPz2017-05-19 10:25:15

    undefined juga boleh disimpan dalam tatasusunan, dan ia juga mempunyai panjang.

    balas
    0
  • 迷茫

    迷茫2017-05-19 10:25:15

    Abang...sila ambil screenshot penuh,

    Baiklah, jika anda menggunakan setiap satu, anda sudah mula melintasi array

    $.each(statuses, function (index, status) {
      console.log(status)
    })

    Status output ialah setiap objek

    balas
    0
  • 黄舟

    黄舟2017-05-19 10:25:15

    Dalam konsol, selepas mengklik pada tatasusunan, status masa nyata dipaparkan, tetapi apabila anda mencetak, hanya ada satu Kemudian, data itu datang secara tidak segerak dan diisi ke dalam tatasusunan. Anda akan tahu dengan mengeluarkan panjang hasil dalam kod

    balas
    0
  • Batalbalas