array.from()方法是ES6中引入的新方法,它可以将类数组对象或可迭代对象转换为真正的数组。它的语法如下:
Array.from(arrayLike [, mapFn [, thisArg]])
参数说明:
- arrayLike:需要转换为数组的类数组对象或可迭代对象。
- mapFn:可选参数,它是一个函数,用来处理每个元素,接收3个参数:当前元素,当前索引,原数组。
- thisArg:可选参数,传递给mapFn函数的this对象。
使用array.from()方法可以实现以下功能:
- 将类数组对象转换为真正的数组,如:
let arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3}; let arr = Array.from(arrayLike); // arr = ['a', 'b', 'c']
- 将可迭代对象转换为真正的数组,如:
let set = new Set(['a', 'b', 'c']); let arr = Array.from(set); // arr = ['a', 'b', 'c']
- 使用mapFn函数对数组每个元素进行处理,如:
let arr = Array.from([1, 2, 3], x => x * x); // arr = [1, 4, 9]
- 将字符串转换为数组,如:
let str = 'hello'; let arr = Array.from(str); // arr = ['h', 'e', 'l', 'l', 'o']
- 将arguments对象转换为数组,如:
function foo() { let arr = Array.from(arguments); // arr = [1, 2, 3] } foo(1, 2, 3);
array.from()方法可以帮助我们将类数组对象或可迭代对象转换为真正的数组,从而更加方便我们进行数组操作。