類陣列轉化為陣列的幾種方式?

2021-10-10 19:22:32 字數 932 閱讀 9658

(1)通過 call 呼叫陣列的 slice 方法來實現轉換

array.prototype.slice.call(arraylike);

陣列的slice()方法可以從已有陣列中返回乙個新陣列,它可以接受兩個引數arr.slice(start,end),第乙個引數規定從何處開始選取,第二個引數表示從何處選取結束,如果不傳參將返回原陣列的乙個副本,但該方法不會修改原陣列,而是返回擷取的新陣列。

slice(start,end) 方法選擇乙個從開始到結束(不包括結束)的陣列的一部分淺拷貝到乙個新的陣列物件,方法不會改變原陣列。如果是物件則拷貝物件的引用到新陣列,如果是基本型別則會拷貝這些值到新陣列。

如果省略start則會從0開始。如果end被省略則會抽取到最後乙個元素,如果end數值大於陣列長度則會抽取到最後乙個元素。

(2)通過 call 呼叫陣列的 splice 方法來實現轉換

array.prototype.splice.call(arraylike, 0);splice(start,count,item)方法傳入的引數不同,第乙個引數代表開始選取的元素位置(必選值),第二個說明選取的元素數量(不傳說明從第乙個引數位置開始到陣列的最後乙個元素),第三個引數代表需要新增的元素(將會新增到第乙個引數位置上)。

(4)es6新增了array.from()方法,可以直接將類陣列轉換為真正的陣列。

通過 array.from 方法來實現轉換

array.from(arraylike);

(5)迴圈遍歷類陣列物件,push到新建立的陣列物件裡

比如

var li = document.queryselectorall('li');

var arr = ;

for (var i = 0; i < li.length; i++)

陣列,及類陣列物件轉化為陣列

陣列的方法要掌握那些會改變原始陣列,以及是否有返回值,返回值是什麼型別 1array.prototype.slice.call arguments 2.slice.call arguments 3array.from arguments 4原生方法實現 var arguments var arr f...

面試 將類陣列轉化為陣列

擁有length屬性 也擁有索引 但是沒有陣列具有的方法。常見的類陣列 arguments和dom的方法返回的結果 class tag的篩選 對arguments的改變會改變函式的引數 function removeduplicate x,y console.log removeduplicate ...

js 偽陣列轉化為陣列的幾種方法整理

偽陣列 無法呼叫陣列的方法,但是有length屬性,又可以索引獲取內部項的資料結構。比如 arguments getelementsbytagname等一系列dom獲取的nodelist物件,他們 都算。轉換方法 一 假設這裡有個偽陣列 pagis let arr slice.call pagis ...