1. 程式人生 > >偽陣列轉化為陣列的方法

偽陣列轉化為陣列的方法

偽陣列(類陣列):

無法直接呼叫陣列方法或期望length屬性有什麼特殊的行為,但仍可以對真正陣列遍歷方法來遍歷它們。

方法:

在js中,陣列是特殊的物件,凡是物件有的性質,陣列都有,陣列表示有序資料的集合,而物件表示無序資料的集合。
那偽陣列是什麼呢,當然它也是物件,偽陣列一般具有以下特點:
1、按索引方式儲存資料;
2、具有length屬性;
3、沒有陣列的push、shift、pop等方法;
function的arguments物件,還有getElementsByTagName、ele.childNodes等返回的NodeList物件,或者自定義的某些物件,這些都可以是偽陣列。
我們可以通過以下幾種方式將偽陣列轉換為標準陣列:
1、使用Array.prototype.slice.call();
Js程式碼 收藏程式碼

Array.prototype.slice.call({  
 0:"likeke",  
 1:12,  
 2:true,  
 length:3  
});  
//["likeke", 12, true]  

2、 使用[].slice.call(),瞭解js原型鏈的都知道,實際上這種方法和第一中方法是一樣的,但上面第一種方式相對效率更高。
Js程式碼 收藏程式碼

[].slice.call({  
 0:"likeke",  
 1:12,  
 2:true,  
 length:3  
});  
//["likeke", 12, true]  

3、使用ES6中Array.from方法;
Js程式碼 收藏程式碼

Array.from({  
 0:"lk",  
 1:12,  
 2:2013,  
 3:"長安大學",  
 length:4  
});  
//["lk", 12, 2013, "長安大學"]