什么是伪数组
1. 具有length属性
2. 按索引方式存储数据
3. 不具有数组的方法, 比如push(),pop()等
伪数组有哪些
1.document.getElementsByTagName和document.childNodes,
返回NodeList对象的都是伪数组
2.上传文件时选择的file对象也是伪数组
3.function的arguments对象(参数数组)
4.Jquery 中 $() 抓取的对象 都是 伪数组
5.自制伪数组
let a = {0:1,1:2,length:2}
伪数组转化为数组方法
-
Array.prototype.slice.call()
let arr = Array.prototype.slice.call(arguments); //等同于 let arr = [].slice.call(arguments)
-
Function.prototype.call.bind(Array.prototype.slice);
//原理同一,只不过变成了bind的实现方式 let fun = Function.prototype.call.bind(Array.prototype.slice); fun(arguments)
-
es6 解构赋值
let newArr = [...arguments]
-
Array.form()
let newArr2 = Array.from(arguments);
-
循环赋值
var arr1 = [], 2 len1 = pagis.length; 3 for (var i = 0; i < len1; i++) { 4 arr1.push(pagis[i]); 5 }