javascript - es6將類(lèi)數(shù)組轉(zhuǎn)化成數(shù)組的問(wèn)題
問(wèn)題描述
栗子:var a = {’1’:’gg’,’2’:’love’,’4’:’meimei’,length:5};var arr=[...a];console.log(arr);
谷歌瀏覽器下報(bào)錯(cuò):Uncaught TypeError: a[Symbol.iterator] is not a function
類(lèi)數(shù)組的定義:/a/11...
javascript關(guān)于‘...’的介紹說(shuō)明文檔:https://developer.mozilla.org...
javascript官方文檔說(shuō)’...’可以將類(lèi)數(shù)組轉(zhuǎn)化成數(shù)組,為什么還會(huì)報(bào)錯(cuò)呢?迷惑!
問(wèn)題解答
回答1:你發(fā)的文章,自己也要先看清楚呀。
之所以成為“類(lèi)數(shù)組”,就是因?yàn)楹汀皵?shù)組”類(lèi)似。不能直接使用數(shù)組方法,但你可以像使用數(shù)組那樣,使用類(lèi)數(shù)組。
不可以直接使用數(shù)組方法,你這個(gè)擴(kuò)展語(yǔ)句不就是 直接使用了么?
你需要先把類(lèi)數(shù)組轉(zhuǎn)化成數(shù)組,可以使用文章中介紹的 Array.prototype.slice.call(arguments)
ES6 也有個(gè)方法,Array.from(arrayLike)
回答2:請(qǐng)用 Array.from()
如果你看英文的頁(yè)面就會(huì)發(fā)現(xiàn)展開(kāi)對(duì)象需要是可遍歷的
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新增那么多特性,你指望瀏覽器能全實(shí)現(xiàn)?
相關(guān)文章:
1. python - 如何正則字符串中的所有漢字2. mysql - 千萬(wàn)級(jí)數(shù)據(jù)的表,添加unique約束,insert會(huì)不會(huì)很慢?3. python - oslo_config4. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處5. mysql - 如何減少使用或者不用LEFT JOIN查詢(xún)?6. mysql - eclispe無(wú)法打開(kāi)數(shù)據(jù)庫(kù)連接7. mysql 5個(gè)left關(guān)鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會(huì)卡,如何解決呢8. mysql - jdbc的問(wèn)題9. 圖片鏈接的地址怎么獲得的10. 視頻文件不能播放,怎么辦?
