javascript - es6將類別數組轉換成數組的問題
扔个三星炸死你
扔个三星炸死你 2017-06-30 09:55:43
0
3
716

栗子:
var a = {'1':'gg','2':'love','4':'meimei',length:5};
var arr=[.. .a];
console.log(arr);

Google瀏覽器下報錯誤:Uncaught TypeError: a[Symbol.iterator] is not a function

類別數組的定義:/a/11...

javascript關於‘...’的介紹說明文件:https://developer.mozilla.org...

javascript官方文件說'...'可以將類別數組轉換成數組,為什麼還會報錯呢?迷惑!

扔个三星炸死你
扔个三星炸死你

全部回覆(3)
伊谢尔伦

你發的文章,自己也要先看清楚呀。

之所以成為“類數組”,就是因為和“數組”類似。不能直接使用陣列方法,但你可以像使用陣列一樣,使用類別數組。

不可以直接使用陣列方法,你這個擴充語句不就是 直接使用了麼?

你需要先把類別數組轉換成數組,可以使用文章中介紹的 Array.prototype.slice.call(arguments)

ES6 也有個方法,Array.from(arrayLike)

習慣沉默

請用 Array.from()

如果你看​​英文的頁面就會發現展開對象需要是可遍歷的

Only for iterables

Spread syntax can be applied only to iterable objects:

var obj = {'key1': 'value1'};
var array = [...obj]; // TypeError: obj is not iterable
滿天的星座

es6新增那麼多特性,你指望瀏覽器能全實現?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板