JS中Array.from和Array.of的区别
时间: 2023-07-07 12:09:15 浏览: 101
js代码-去重:Set 对象 + Array.from
`Array.from`和`Array.of`都是用来创建数组的方法,但它们的功能有所不同。
1. `Array.from`方法从一个类似数组或可迭代对象中创建一个新的数组实例。
例如,将一个字符串转换为数组:
```javascript
const str = 'hello';
const arr = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
```
或者将一个类似数组的对象转换为数组:
```javascript
const obj = {
0: 'a',
1: 'b',
2: 'c',
length: 3
};
const arr = Array.from(obj); // ['a', 'b', 'c']
```
2. `Array.of`方法通过将一组值作为参数,创建一个新的数组实例。
例如:
```javascript
const arr = Array.of(1, 2, 3); // [1, 2, 3]
```
与`Array.from`不同,`Array.of`方法总是创建一个包含传递的所有参数的数组。
另外,如果只传递了一个参数给`Array.of`,它将创建一个只包含该参数的数组:
```javascript
const arr = Array.of(5); // [5]
```
相反,如果传递一个单一的数字给`Array.from`,它将创建一个具有该数字指定长度的数组:
```javascript
const arr = Array.from({ length: 3 }, (_, index) => index); // [0, 1, 2]
```
总之,`Array.from`和`Array.of`方法是用于创建数组的两个不同的方法,它们的功能和应用场景有所不同。
阅读全文