Array.from的作用

Array.from 方法用于將兩類(lèi)對(duì)象轉(zhuǎn)為真正的數(shù)組:類(lèi)似數(shù)組的對(duì)象(array-like object)和可遍歷(iterable)的對(duì)象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

// ES5的寫(xiě)法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6的寫(xiě)法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

實(shí)際應(yīng)用中,常見(jiàn)的類(lèi)似數(shù)組的對(duì)象是DOM操作返回的NodeList集合,以及函數(shù)內(nèi)部的arguments對(duì)象。Array.from都可以將它們轉(zhuǎn)為真正的數(shù)組。

擴(kuò)展運(yùn)算符(...)也可以將某些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)為數(shù)組。

// arguments對(duì)象
function foo() {
  var args = [...arguments];
}

// NodeList對(duì)象
[...document.querySelectorAll('div')]

擴(kuò)展運(yùn)算符背后調(diào)用的是遍歷器接口(Symbol.iterator),如果一個(gè)對(duì)象沒(méi)有部署這個(gè)接口,就無(wú)法轉(zhuǎn)換。Array.from方法還支持類(lèi)似數(shù)組的對(duì)象。所謂類(lèi)似數(shù)組的對(duì)象,本質(zhì)特征只有一點(diǎn),即必須有l(wèi)ength屬性。因此,任何有l(wèi)ength屬性的對(duì)象,都可以通過(guò)Array.from方法轉(zhuǎn)為數(shù)組,而此時(shí)擴(kuò)展運(yùn)算符就無(wú)法轉(zhuǎn)換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn),只要將碼點(diǎn)放入大括號(hào),就能正確解讀該字符。有了這...
    eastbaby閱讀 1,670評(píng)論 0 8
  • 數(shù)組的擴(kuò)展--轉(zhuǎn)自:阮一峰《ECMAScript 6 入門(mén)》 Array.from( Array.from方法用于...
    呼呼哥閱讀 649評(píng)論 0 0
  • 很多事就是那樣,若是不好好想,若是不深入地想,若是不長(zhǎng)期地想。要不了多久我們就可以忘記自己當(dāng)初為什么要做這件事。 ...
    我是劉良閱讀 529評(píng)論 0 0
  • 【知-學(xué)習(xí)】 1.朗讀5分鐘。 2.《六項(xiàng)精進(jìn)》大綱誦讀0遍。 【經(jīng)典名句分享】 深到骨子里的成熟,就是不要輕易指...
    玉_蓮子閱讀 251評(píng)論 0 0
  • 黑夜 茫茫夜空里,聽(tīng)見(jiàn)心跳的聲音,雖然相隔萬(wàn)里,渴望夢(mèng)想成真,卻找著彼此的軌跡…… 當(dāng)黑夜來(lái)臨時(shí),我們懷著同樣的不...
    桔子210閱讀 622評(píng)論 0 2

友情鏈接更多精彩內(nèi)容