伪数组的来源,一般通过document.querySelectorAll()这样获取来的都属于伪数组
外在:众所周知,伪数组就是长得有点像数组的东西
伪数组长这样
内涵:对象方法却完全不一样,由于数组的处理数据能力比伪数组要强,一般要对数据进行操作或加工,先转为数组
数组长这样
方法一:
Array.prototype.slice.call(伪数组)
方法二:
Array.from(伪数组)
大概原理就是
// 给数组的原型添加方法
Array.prototype.mySlice = function () {
let start = 0
let end = this.length
let tmp = []
for (let i = start; i < end; i++) {
tmp.push(this[i])
}
return tmp
}
console.log([].mySlice.call(fakeArr))