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

栗子:
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新增那麼多特性,你指望瀏覽器能全實現?

        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!