ES6数组方法Array.from Array.of的区别
时间: 2023-08-22 17:08:46 浏览: 167
ES6中的`Array.from`和`Array.of`都是用于处理数组的方法,但它们有不同的功能和用途。
`Array.from`方法用于将类似数组或可迭代对象转换为新的数组实例。它接受两个参数:第一个参数是要转换的类似数组或可迭代对象,第二个参数是一个可选的映射函数,用于对每个元素进行处理。它返回一个新的数组,其中包含传入参数的所有元素。例如:
```javascript
const str = 'hello';
const arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']
```
`Array.of`方法用于创建一个包含任意数量参数的新数组实例。它接受任意数量的参数,并将它们作为数组的元素。与`Array`构造函数不同,`Array.of`不会根据参数的数量来确定数组的长度。例如:
```javascript
const arr1 = Array.of(1, 2, 3);
console.log(arr1); // [1, 2, 3]
const arr2 = Array.of(3);
console.log(arr2); // [3],而不是长度为3的空数组
```
总结来说,`Array.from`用于将类似数组或可迭代对象转换为数组,而`Array.of`用于创建包含任意数量参数的新数组实例。
相关问题
es6中的array.from方法
ES6中的Array.from()方法主要是用来将类数组对象和可迭代对象转换为真正的数组。该方法接收一个参数和一个可选参数,第一个参数是需要转换为数组的类数组对象或可迭代对象,可选参数是一个函数,用于对数组进行进一步的处理。
该方法的优点是可以避免使用Array.prototype.slice.call()或spread运算符来将类数组对象或可迭代对象转换为数组。而且,通过可选参数的使用,可以对数组进行进一步的筛选和选择,增强转换的灵活性。
在具体使用的过程中,需要注意的是该方法不能转换所有的类数组对象。只有当对象部署了迭代器接口iterator或具有数字键名属性(如NodeList对象)时,才能被转换成数组。
总的来说,Array.from()方法是一个方便、简洁、高效的转换方法,可以让开发者更加方便地进行操作和处理。尤其是在处理类数组对象或可迭代对象时,能够提供更加优雅和简单的解决方案。
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()方法用于创建一个包含任意数量参数的新数组实例。
阅读全文