類陣列轉換為陣列的方法

2021-09-20 13:07:08 字數 857 閱讀 3634

1、array.prototype.slice.call()

這種方法是借用了陣列原型中的slice方法,返回乙個陣列。slice方法的內部實現:

array.prototype.

slice

=function

(start,end)

var result =

newarray()

; start = start ||

0;

end = end ||

this

.length;

//使用call之後this指向了類陣列物件

for(

var i = start; i < end; i++

)return result;

}

2、array.from()

array.from()是es6中新增的方法,可以將兩類物件轉為真正的陣列:類陣列物件和可遍歷(iterable)物件(包括es6新增的資料結構set和map)。

只要是部署了iterator介面的資料結構,array.from都能將其轉換為陣列

3、擴充套件運算子(…)

同樣是es6中新增的內容,擴充套件運算子(…)也可以將某些資料結構轉為陣列

//arguments物件的轉

[...arguments]

//nodelist物件的轉換

[...document.queryselectorall('p')]

擴充套件運算子實際上呼叫的是遍歷器介面,如果乙個物件沒有部署此介面就無法完成轉換

類陣列轉換為陣列的方法

1 array.prototype.slice.call 這種方法是借用了陣列原型中的slice方法,返回乙個陣列。slice方法的內部實現 array.prototype.slice function start,end return result 乙個通用的轉換函式 var toarray fu...

類陣列物件轉換為陣列的方法

在編寫 時,有時需要對類陣列物件使用foreach map filter等迭代操作,而類陣列物件無法直接呼叫這些方法,因而需將其轉換為陣列。doctype html en utf 8 viewport content width device width,initial scale 1.0 docu...

將類陣列轉換為陣列

一 利用陣列的slice方法 slice.call arguments 原理 array.prototype.slice的實現原理 array.prototype.slice function start,end var result new array start start 0 end end ...