【每日一题】JavaScript基础|什么是类数组对象?如何将它转化为数组?

108 阅读1分钟

【每日一题】JavaScript基础|什么是类数组对象?如何将它转化为数组?

什么是类数组对象?

  1. 是一个对象,非null或undefined
  2. 拥有length属性
  3. 可以通过索引来访问或设置对象里的元素
  4. 不能使用数组的方法

一个拥有length属性和若干索引属性的对象就可以被称为类数组对象,类数组对象和数组类似,但是不能调用数组的方法。

有哪些类数组对象?

  1. arguments
  2. DOM方法的返回结果(NodeList)
  3. 函数参数

怎么把类数组对象转换为数组?

1. Array.from
  语法:Array.from(arrayLike[, mapFn[, thisArg]])
  参数:
  1.arrayLike 想要转换成数组的伪数组对象或可迭代对象。
  2.mapFn 可选如果指定了该参数,新数组中的每个元素会执行该回调函数。
  3.thisArg 可选可选参数,执行回调函数 mapFn 时 this 对象。
  返回值:一个新的数组实例
  
2. Array.prototype.slice.call()
  语法:Array.prototype.slice.call(arrayLike, start, end)
  参数:arraylike 当前函数执行时this的指向
       start,end 传入给slice的参数,用于切割数组
  返回值:slice会返回一个新数组,原数组不发生变化
  
3. ES6展开运算符 ...
  语法:let result = (...arrayLike)
​
4. Array.prototype.concat.apply()
  语法:Array.prototype.concat.apply([],arraylike)
  参数:[] 当前函数执行时this的指向
       arraylike 传入给concat的参数数组