【每日一题】JavaScript基础|什么是类数组对象?如何将它转化为数组?
什么是类数组对象?
- 是一个对象,非null或undefined
- 拥有length属性
- 可以通过索引来访问或设置对象里的元素
- 不能使用数组的方法
一个拥有length属性和若干索引属性的对象就可以被称为类数组对象,类数组对象和数组类似,但是不能调用数组的方法。
有哪些类数组对象?
- arguments
- DOM方法的返回结果(NodeList)
- 函数参数
怎么把类数组对象转换为数组?
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的参数数组