javascript - es6將類數組轉化成數組的問題
問題描述
栗子: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
類數組的定義:/a/11...
javascript關于‘...’的介紹說明文檔:https://developer.mozilla.org...
javascript官方文檔說’...’可以將類數組轉化成數組,為什么還會報錯呢?迷惑!
問題解答
回答1:你發的文章,自己也要先看清楚呀。
之所以成為“類數組”,就是因為和“數組”類似。不能直接使用數組方法,但你可以像使用數組那樣,使用類數組。
不可以直接使用數組方法,你這個擴展語句不就是 直接使用了么?
你需要先把類數組轉化成數組,可以使用文章中介紹的 Array.prototype.slice.call(arguments)
ES6 也有個方法,Array.from(arrayLike)
回答2:請用 Array.from()
如果你看英文的頁面就會發現展開對象需要是可遍歷的
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新增那么多特性,你指望瀏覽器能全實現?
相關文章:
1. Python爬蟲如何爬取span和span中間的內容并分別存入字典里?2. css3 - 微信前端頁面遇到的transition過渡動畫的bug3. javascript - 請教如何獲取百度貼吧新增的兩個加密參數4. python - 編碼問題求助5. python - 關于計算日期的問題6. (python)關于如何做到按win+R再輸入文件文件名就可以運行?7. Python如何播放還存在StringIO中的MP3?8. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處9. mysql 一個sql 返回多個總數10. mysql - 如何減少使用或者不用LEFT JOIN查詢?
