javascript - es6將類數(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
類數(shù)組的定義:/a/11...
javascript關(guān)于‘...’的介紹說(shuō)明文檔:https://developer.mozilla.org...
javascript官方文檔說(shuō)’...’可以將類數(shù)組轉(zhuǎn)化成數(shù)組,為什么還會(huì)報(bào)錯(cuò)呢?迷惑!
問(wèn)題解答
回答1:你發(fā)的文章,自己也要先看清楚呀。
之所以成為“類數(shù)組”,就是因?yàn)楹汀皵?shù)組”類似。不能直接使用數(shù)組方法,但你可以像使用數(shù)組那樣,使用類數(shù)組。
不可以直接使用數(shù)組方法,你這個(gè)擴(kuò)展語(yǔ)句不就是 直接使用了么?
你需要先把類數(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. macos - mac下docker如何設(shè)置代理2. dockerfile - 為什么docker容器啟動(dòng)不了?3. javascript - 如何獲取未來(lái)元素的父元素在頁(yè)面中所有相同元素中是第幾個(gè)?4. Android下,rxJava+retrofit 并發(fā)上傳文件和串行上傳文件的效率為什么差不多?5. apache - 本地搭建wordpress權(quán)限問(wèn)題6. javascript - web網(wǎng)頁(yè)版app返回上一頁(yè)按鈕在ios設(shè)備失效怎么辦?安卓上可以,代碼如下,請(qǐng)大神幫助,萬(wàn)分感謝。7. Whitelabel錯(cuò)誤頁(yè)面發(fā)生意外錯(cuò)誤(類型=未找到,狀態(tài)= 404)/WEB-INF/views/home.jsp8. 熱切期待朱老師的回復(fù),網(wǎng)頁(yè)視頻在線播放器插件配置錯(cuò)誤9. angular.js - ng-grid 和tabset一起用時(shí),grid width默認(rèn)特別小10. objective-c - iPhone如何實(shí)現(xiàn)微信的搖一搖功能?
