javascript - es6將類數(shù)組轉(zhuǎn)化成數(shù)組的問題
問題描述
栗子:var a = {’1’:’gg’,’2’:’love’,’4’:’meimei’,length:5};var arr=[...a];console.log(arr);
谷歌瀏覽器下報錯:Uncaught TypeError: a[Symbol.iterator] is not a function
類數(shù)組的定義:/a/11...
javascript關(guān)于‘...’的介紹說明文檔:https://developer.mozilla.org...
javascript官方文檔說’...’可以將類數(shù)組轉(zhuǎn)化成數(shù)組,為什么還會報錯呢?迷惑!
問題解答
回答1:你發(fā)的文章,自己也要先看清楚呀。
之所以成為“類數(shù)組”,就是因為和“數(shù)組”類似。不能直接使用數(shù)組方法,但你可以像使用數(shù)組那樣,使用類數(shù)組。
不可以直接使用數(shù)組方法,你這個擴展語句不就是 直接使用了么?
你需要先把類數(shù)組轉(zhuǎn)化成數(shù)組,可以使用文章中介紹的 Array.prototype.slice.call(arguments)
ES6 也有個方法,Array.from(arrayLike)
回答2:請用 Array.from()
如果你看英文的頁面就會發(fā)現(xiàn)展開對象需要是可遍歷的
Only for iterablesSpread syntax can be applied only to iterable objects:
var obj = {’key1’: ’value1’};var array = [...obj]; // TypeError: obj is not iterable回答3:
es6新增那么多特性,你指望瀏覽器能全實現(xiàn)?
相關(guān)文章:
1. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. 刷新頁面出現(xiàn)彈框4. javascript - 編程,算法的問題5. javascript - 怎么看網(wǎng)站用了什么技術(shù)框架?6. mysql - 用PHPEXCEL將excel文件導入數(shù)據(jù)庫數(shù)據(jù)5000+條,本地數(shù)據(jù)庫正常,線上只導入15條,沒有報錯,哪里的問題?7. javascript - 請教空白文本節(jié)點的問題8. PC 手機兼容的 編輯器9. 關(guān)于Android權(quán)限的獲取問題,大家遇到過這樣的情況嘛?10. css - 關(guān)于border-image
