偽陣列轉化為陣列的方法
阿新 • • 發佈:2019-01-30
偽陣列(類陣列):
無法直接呼叫陣列方法或期望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, "長安大學"]