Rumah  >  Soal Jawab  >  teks badan

javascript - masalah es6 untuk menukar tatasusunan kelas kepada tatasusunan

Berangan:
var a = {'1':'gg','2':'love','4':'meimei',length:5};
var arr=[...a];
console .log(arr);

Ralat dilaporkan di bawah Google Chrome: Uncaught TypeError: a[Symbol.iterator] bukan fungsi

Takrifan seperti tatasusunan:/a/11...

Dokumentasi pengenalan JavaScript pada ‘...’: https://developer.mozilla.org...

Dokumentasi JavaScript rasmi mengatakan bahawa '...' boleh menukar tatasusunan kelas kepada tatasusunan Mengapa ia masih melaporkan ralat? mengelirukan!

扔个三星炸死你扔个三星炸死你2688 hari yang lalu704

membalas semua(3)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-06-30 09:57:43

    Anda hendaklah membaca artikel yang anda siarkan dengan teliti terlebih dahulu.

    Sebab mengapa ia dipanggil "seperti array" adalah kerana ia serupa dengan "array". Anda tidak boleh menggunakan kaedah tatasusunan secara langsung, tetapi anda boleh menggunakan kaedah seperti tatasusunan seperti tatasusunan.

    Anda tidak boleh menggunakan kaedah tatasusunan secara langsung Bukankah pernyataan sambungan anda digunakan secara langsung?

    Anda perlu menukar tatasusunan kelas kepada tatasusunan terlebih dahulu, anda boleh menggunakan kaedah yang diperkenalkan dalam artikel Array.prototype.slice.call(arguments)

    ES6 juga ada kaedah, Array.from(arrayLike)

    balas
    0
  • 習慣沉默

    習慣沉默2017-06-30 09:57:43

    Sila gunakan Array.from()

    Jika anda melihat halaman Bahasa Inggeris, anda akan mendapati bahawa objek yang diperluaskan perlu dilalui

    Hanya untuk iterables

    Sintaks penyebaran boleh digunakan hanya pada objek boleh lelar:

    var obj = {'key1': 'value1'};
    var array = [...obj]; // TypeError: obj is not iterable

    balas
    0
  • 滿天的星座

    滿天的星座2017-06-30 09:57:43

    ES6 mempunyai begitu banyak ciri baharu, adakah anda menjangkakan pelayar akan melaksanakan kesemuanya?

    balas
    0
  • Batalbalas