类数组
什么是类数组
- 属性键为数字字符串
- 有长度属性 length
常见的类数组场景
arguments
function test() {
console.log(arguments)
}
let arr = [1, 2, 3, 4]
test(...arr)
如何把类数组转换为数组
为了得到数组的特性
转化的实质
把类数组中的属性迭代到真实数组中去,核心如下图
let result = []
for (let i = 0; i < arguments.length; i++) {
result.push(arguments[i])
}
转化的内置方法
- Array
let result = Array.apply(null, likeArrayObj)
- slice
let result = Array.prototype.slice.apply(likeArrayObj)
// or
let result = [].slice.apply(likeArrayObj)
- Array.form
let result = Array.from(likeArrayObj)
- spread
let result = [...likeArrayObj]