[ES6之Array.from()方法]

ES6之Array.from()方法

Array.from()方法就是將一個類數(shù)組對象或者可遍歷對象轉(zhuǎn)換成一個真正的數(shù)組。

那么什么是類數(shù)組對象呢?所謂類數(shù)組對象,最基本的要求就是具有l(wèi)ength屬性的對象。

1、將類數(shù)組對象轉(zhuǎn)換為真正數(shù)組:

let arrayLike = {

0: 'tom'``,

1: '65'``,

2: '男'``,

3: [``'jane'``,``'john'``,``'Mary'``],

'length'``: 4

}

let arr = Array.from(arrayLike)

console.log(arr) // ['tom','65','男',['jane','john','Mary']]

那么,如果將上面代碼中l(wèi)ength屬性去掉呢?實踐證明,答案會是一個長度為0的空數(shù)組。

這里將代碼再改一下,就是具有l(wèi)ength屬性,但是對象的屬性名不再是數(shù)字類型的,而是其他字符串型的,代碼如下:
let arrayLike = {

'name'``: 'tom'``,

'age'``: '65'``,

'sex'``: '男'``,

'friends'``: [``'jane'``,``'john'``,``'Mary'``],

length: 4

}

let arr = Array.from(arrayLike)

console.log(arr) // [ undefined, undefined, undefined, undefined ]

會發(fā)現(xiàn)結(jié)果是長度為4,元素均為undefined的數(shù)組

由此可見,要將一個類數(shù)組對象轉(zhuǎn)換為一個真正的數(shù)組,必須具備以下條件:

1、該類數(shù)組對象必須具有l(wèi)ength屬性,用于指定數(shù)組的長度。如果沒有l(wèi)ength屬性,那么轉(zhuǎn)換后的數(shù)組是一個空數(shù)組。

2、該類數(shù)組對象的屬性名必須為數(shù)值型或字符串型的數(shù)字

ps: 該類數(shù)組對象的屬性名可以加引號,也可以不加引號

2、將Set結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換為真正的數(shù)組:

let arr = [12,45,97,9797,564,134,45642]

let set = new Set(arr)

console.log(Array.from(set)) // [ 12, 45, 97, 9797, 564, 134, 45642 ]

Array.from還可以接受第二個參數(shù),作用類似于數(shù)組的map方法,用來對每個元素進(jìn)行處理,將處理后的值放入返回的數(shù)組。如下:

let arr = [12,45,97,9797,564,134,45642]

let set = new Set(arr)

console.log(Array.from(set, item => item + 1)) // [ 13, 46, 98, 9798, 565, 135, 45643 ]

|

3、將字符串轉(zhuǎn)換為數(shù)組:

let str = 'hello world!'``;

console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

4、Array.from參數(shù)是一個真正的數(shù)組:

console.log(Array.from([12,45,47,56,213,4654,154]))

像這種情況,Array.from會返回一個一模一樣的新數(shù)組

作者:江峰★
出處:http://www.cnblogs.com/jf-67/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利

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

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

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