面试题答案
一键面试以下是将类数组对象转换为数组的常见方法及原理:
- 使用
Array.from()
方法 原理:Array.from()
方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。对于类数组对象,它会根据对象的length
属性和索引来提取元素创建数组。 示例:
function test() {
const argsArray = Array.from(arguments);
console.log(argsArray);
}
test(1, 2, 3);
- 使用扩展运算符 (
...
) 原理:扩展运算符可以将类数组对象展开成一个个独立的值,然后这些值可以被用于初始化一个新的数组。它会遍历类数组对象的可枚举属性,按照索引顺序获取值。 示例:
function test() {
const argsArray = [...arguments];
console.log(argsArray);
}
test(1, 2, 3);
- 使用
Array.prototype.slice.call()
方法 原理:slice()
方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,且原数组不会被修改。通过call()
方法,我们可以改变slice()
方法内部this
的指向,使其作用于类数组对象,从而实现转换。 示例:
function test() {
const argsArray = Array.prototype.slice.call(arguments);
console.log(argsArray);
}
test(1, 2, 3);