首頁 > web前端 > js教程 > 主體

es6怎麼將物件轉成數組

青灯夜游
發布: 2022-10-18 17:24:55
原創
8275 人瀏覽過

在es6中,可以利用Array物件的from()方法將物件轉成數組,該方法可以將一個類別數組物件或可遍歷物件轉換成一個真正的數組;語法「Array.from (對象)」。

es6怎麼將物件轉成數組

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

在es6中,可以利用Array物件的from()方法將物件轉換成陣列。

Array.from()方法就是將一個類別數組物件或可遍歷物件轉換成一個真正的陣列。

那麼什麼是類別數組物件呢?所謂類別數組對象,最基本的要求就是具有length屬性的對象。

1、將類別數組物件轉換為真正數組:

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']]
登入後複製

那麼,如果將上面程式碼中length屬性去掉呢?實踐證明,答案會是長度為0的空數組。

這裡將程式碼再改一下,就是具有length屬性,但是物件的屬性名稱不再是數字類型的,而是其他字串型的,程式碼如下:

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 ]
登入後複製

會發現結果是長度為4,元素皆為undefined的陣列

由此可見,要將一個類別陣列物件轉換為真正的陣列,必須具備以下條件:

  • 該類別陣列物件必須具有length屬性,用於指定陣列的長度。如果沒有length屬性,那麼轉換後的陣列就是一個空數組。

  • 該類別陣列物件的屬性名稱必須是數值型或字串型的數字

ps: 此類別陣列物件的屬性名稱可以加引號,也可以不加引號

2、將Set結構的資料轉換為真正的陣列: 

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也可以接受第二個參數,作用類似陣列的map方法,用來對每個元素進行處理,將處理後的值放入傳回的陣列。如下:

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、將字串轉換為陣列:

let  str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
登入後複製

4、Array.from參數是一個真正的陣列:

console.log(Array.from([12,45,47,56,213,4654,154]))
登入後複製

像這種情況,Array .from會回傳一個一模一樣的新陣列

【相關推薦:javascript影片教學web前端

以上是es6怎麼將物件轉成數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板