类数组转换

类数组

什么是类数组

  1. 属性键为数字字符串
  2. 有长度属性 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])
}
转化的内置方法
  1. Array
let result = Array.apply(null, likeArrayObj)
  1. slice
let result = Array.prototype.slice.apply(likeArrayObj)
// or
let result = [].slice.apply(likeArrayObj)
  1. Array.form
let result = Array.from(likeArrayObj)
  1. spread
let result = [...likeArrayObj]
原文地址:https://www.cnblogs.com/sefaultment/p/10750102.html