陣列的轉化

2022-07-26 21:00:18 字數 1472 閱讀 1237

1.字串轉換為陣列

擴充套件運算子可以將字串轉為真正的陣列:

[...'

hello']

//[ "h", "e", "l", "l", "o" ]

2.具有iterator介面的物件可以轉換為陣列

任何定義了遍歷器(iterator)介面的物件(參閱 iterator 一章),都可以用擴充套件運算子轉為真正   的陣列。

let nodelist = document.queryselectorall('

div'

);let array = [...nodelist];

上面**中,queryselectorall方法返回的是乙個nodelist物件。它不是陣列,而是乙個類似陣列的物件。這時,擴充套件運算子可以將其轉為真正的陣列,原因就在於nodelist物件實現了 iterator 。

3.沒有部署iterator介面的類似陣列的物件,擴充套件運算子就無法將其轉為真正的陣列。

但是可以用array.from將物件轉換為真正的陣列

(array.from方法用於將兩類物件轉為真正的陣列:類似陣列的物件(array-like object)和可遍歷(iterable)的物件)

let arraylike =;

//typeerror: cannot spread non-iterable object.

//let arr = [...arraylike];

var a = array.from

(arraylike)

console.log(a)

//["a", "b", "c"]

要將乙個類陣列物件轉換為乙個真正的陣列,必須具備以下條件:

(1)該類陣列物件必須具有length屬性,用於指定陣列的長度。如果沒有length屬性,那麼轉換後的陣列是乙個空陣列。

(2)該類陣列物件的屬性名必須為數值型或字串型的數字

該類陣列物件的屬性名可以加引號,也可以不加引號

array還可以接受第二個引數,作用類似於陣列的map方法,用來對每個元素進行處理,將處理後的值放入返回的陣列。

總結:

擴充套件運算子背後呼叫的是遍歷器介面(symbol.iterator),如果乙個物件沒有部署這個介面,就無法轉換。array.from方法還支援類似陣列的物件。所謂類似陣列的物件,必須有length屬性。任何有length屬性的物件,都可以通過array.from方法轉為陣列,而此時擴充套件運算子就無法轉換。

4.array.of()方法用於將一組值,轉換為陣列。

array.of(3, 11, 8) //

[3,11,8]

array.of(3) //

[3]array.of(3).length //

1

陣列之間的轉化

int 轉integer integer integers arrays.stream nums1 boxed toarray integer new int 轉list去重 遇到的問題 直接使用new hashset arrays.aslist int 去重 而int和integer之間還有一層轉...

普通陣列轉化稀疏陣列

package sparsearray create by author luozhiyuan qq 707530775 qq.com on 2019 08 04.time 23 44 public class sparsearray system.out.println public static...

PHP學習 陣列的轉化

2016 09 01 陣列轉化為字串,字串轉化為陣列 arr name tom jim null str implode arr 將陣列整體轉化為字串 echo str name tom jim echo arr1 explode str 將字串分割成乙個陣列。print r arr1 array ...