Array.from Array.of
时间: 2023-11-03 10:53:23 浏览: 73
Array.from是一个数组方法,它可以将类数组对象或可迭代对象转换为一个新的数组。它接受一个类数组对象或可迭代对象作为参数,并返回一个由这些元素组成的新数组。
Array.of是一个数组方法,它创建一个由传入的参数创建的新数组。它接受任意数量的参数,并将它们作为数组的元素,返回一个新的数组。
这两个方法在功能上有所区别,Array.from主要用于将类数组对象或可迭代对象转换为数组,而Array.of主要用于创建包含传入参数作为元素的新数组。
相关问题
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`都是用于处理数组的方法,但它们有不同的功能和用途。
`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`用于创建包含任意数量参数的新数组实例。
阅读全文