1.伪数组的介绍
伪数组我们可以理解为类似数组的一个集合,我们常见的有俩个,一个是arguments还有一个是DOM的children属性,获取回来的子节点集合。他们与数组一样,具有索引(下标)和length属性。可以通过for循环写循环语句去循环遍历。我们可以简单看一下伪数组的样子:
伪数组和数组的区别在于__proto__
2.如何判断伪数组?
使用 Array.isArray(value)
3.伪数组如何转换为数组?
//1.使用扩展运算符
function a() {
let b = arguments;
//使用扩展运算符 转化为数组
let d = [...b];
console.log(Array.isArray(d));//true
}
a()
//2.使用 es6 新增的 Array.from 静态方法
function a() {
let b = arguments;
let d = Array.from(b);
console.log(Array.isArray(d)); //true
}
a()
4.数组解析
//解析数组
let arr = [1, 2, 3, 4];
let s = [];
s.push(arr) //[[1,2,3,4]]
//解析数组
s.push(...arr) //[[1,2,3,4],1,2,3,4]
5.伪数组怎么调用 数组的方法?
Array.prototype 里面的所有数组方法都有 一个 call 方法,call 方法第一个参数是 伪数组
let isTrue = true
let a = 'a'
let b = 'b'
let c = 'c'
foo(a, b, c)
//假设我们要使用 除了 isTrue 外 所有的 参数
//但是 arguments 是伪数组,没有继承 Array
//那怎么操作呢?
function foo(isTrue) {
let args = Array.prototype.slice.call(arguments, 1, 3)
console.log(args); //['b', 'c']
}