类数组对象
类数组对象的定义、常见场景及转换为数组的方法
问题
什么是类数组对象?如何将其转换为真正的数组?
解答
什么是类数组对象
类数组对象是指拥有 length 属性和若干索引属性的对象。它们和数组类似,但不能调用数组的方法。
常见的类数组对象包括:
arguments对象- DOM 方法的返回结果(如
document.querySelectorAll()) - 函数对象(
length属性表示可接收的参数个数)
转换为数组的方法
方法 1:使用 Array.prototype.slice.call()
Array.prototype.slice.call(arrayLike);
方法 2:使用 Array.prototype.splice.call()
Array.prototype.splice.call(arrayLike, 0);
方法 3:使用 Array.prototype.concat.apply()
Array.prototype.concat.apply([], arrayLike);
方法 4:使用 Array.from()(推荐)
Array.from(arrayLike);
关键点
- 类数组对象具有
length属性和索引属性,但不是真正的数组 - 类数组对象无法直接调用数组方法
Array.from()是 ES6 提供的标准转换方法,语法最简洁- 也可以使用扩展运算符
[...arrayLike]进行转换(适用于可迭代对象)
目录