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 ...