Rumah > Soal Jawab > teks badan
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!
伊谢尔伦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)
習慣沉默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
滿天的星座2017-06-30 09:57:43
ES6 mempunyai begitu banyak ciri baharu, adakah anda menjangkakan pelayar akan melaksanakan kesemuanya?