類陣列轉換為陣列的方法

2021-09-13 12:38:03 字數 977 閱讀 6644

1、array.prototype.slice.call()

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

array.prototype.slice = function(start,end)

return result;乙個通用的轉換函式:

var toarray = function(s) catch(e)

return arr;

}2、array.from()

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

var arraylike = ;

var arr = array.from(arraylike);//['a','b','c']

//把nodelist物件轉換為陣列,然後使用陣列的foreach方法

var ps = document.queryselectorall('p');

array.from(ps).foreach(p));

//轉換arguments物件為陣列

function foo()

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

array.from('hello'); //['h','e','l','l','o']

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

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

//arguments物件的轉換

function foo()

//nodelist物件的轉換

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

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

類陣列轉換為陣列的方法

1 array.prototype.slice.call 這種方法是借用了陣列原型中的slice方法,返回乙個陣列。slice方法的內部實現 array.prototype.slice function start,end var result newarray start start 0 end ...

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

在編寫 時,有時需要對類陣列物件使用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 ...