Array.from使用方法
时间: 2023-11-03 20:00:48 浏览: 41
Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。它的语法如下:
```javascript
Array.from(arrayLike[, mapFn[, thisArg]])
```
参数解释:
- `arrayLike`:类似数组或可迭代对象。
- `mapFn` (可选):一个类似于 `Array.prototype.map()` 的回调函数,用来对每个元素进行处理,将处理后的结果放入新数组中。
- `thisArg` (可选):执行 `mapFn` 时 `this` 对象的值。
调用示例:
```javascript
// 从一个字符串中创建一个新的数组
Array.from('hello') // ['h', 'e', 'l', 'l', 'o']
// 从一个 Set 对象中创建一个新的数组
const set = new Set(['foo', 'bar', 'baz'])
Array.from(set) // ['foo', 'bar', 'baz']
// 使用 mapFn 将每个元素加倍
Array.from([1, 2, 3], x => x * 2) // [2, 4, 6]
```
需要注意的是,`Array.from()` 方法只能将类似数组或可迭代对象转换成数组,如果传入的参数不满足该条件,将会抛出 `TypeError` 异常。
相关问题
Array.from Array.of区别
Array.from和Array.of是两个不同的Array构造函数的静态方法。
1. Array.from:
- Array.from方法用于从可迭代对象或类数组对象创建一个新的数组实例。
- 它接受一个类数组对象或可迭代对象作为第一个参数,可以是类似数组的对象(拥有length属性和索引)或可迭代对象(如Set、Map、字符串等)。
- 可选的第二个参数是一个映射函数,用于对每个元素进行映射转换。
- 可选的第三个参数是指定映射函数中this的值。
- 返回一个新的数组实例。
示例使用Array.from方法创建一个新的数组实例:
```javascript
const str = 'hello';
const arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']
```
2. Array.of:
- Array.of方法用于创建一个新的数组实例,不论传递的参数数量是多少。
- 它接受任意数量的参数作为数组的元素值,并返回一个包含这些元素的新数组实例。
- 与Array构造函数不同,如果只传递一个参数且该参数为数字类型,则会创建一个具有指定长度的空数组,而不是包含该数字作为唯一元素值的数组。
示例使用Array.of方法创建新的数组实例:
```javascript
const arr1 = Array.of(1, 2, 3);
console.log(arr1); // [1, 2, 3]
const arr2 = Array.of(5);
console.log(arr2); // [5]
const arr3 = Array.of(5, 'hello', true);
console.log(arr3); // [5, 'hello', true]
```
总结:
- Array.from方法用于从可迭代对象或类数组对象创建新的数组实例,并可选择进行映射转换。
- Array.of方法用于创建一个新的数组实例,不论传递的参数数量是多少。
es6中 Array.from方法和Array.of方法的区别
在ES6中,Array.from()和Array.of()都是用于创建新数组的方法,但它们的功能和使用方式有所不同。
1. Array.from():
- Array.from()方法用于从类数组对象或可迭代对象中创建一个新的数组实例。
- 它接受一个类数组对象或可迭代对象作为第一个参数,并可选地接受一个映射函数和一个上下文对象作为第二个和第三个参数。
- 它将类数组对象或可迭代对象中的每个元素转换为数组的对应元素。
- 映射函数可以在转换过程中对每个元素进行处理。
- 返回一个新的数组实例。
示例:
```javascript
// 从字符串中创建数组
const str = 'hello';
const arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']
// 从集合中创建数组
const set = new Set([1, 2, 3]);
const arr2 = Array.from(set, num => num * 2);
console.log(arr2); // [2, 4, 6]
```
2. Array.of():
- Array.of()方法用于创建一个包含任意数量参数的新数组实例。
- 它接受任意数量的参数,并将这些参数作为数组的元素,返回一个新的数组实例。
- 它解决了使用Array构造函数创建单个元素数组时的一些问题。
示例:
```javascript
const arr1 = Array.of(1, 2, 3, 4);
console.log(arr1); // [1, 2, 3, 4]
const arr2 = Array.of(5);
console.log(arr2); // [5]
const arr3 = Array.of(undefined);
console.log(arr3); // [undefined]
```
总结:
- Array.from()方法用于从类数组对象或可迭代对象中创建一个新数组,并提供映射功能。
- Array.of()方法用于创建一个包含任意数量参数的新数组实例。