js中的Array.from
时间: 2024-08-17 13:01:31 浏览: 52
JavaScript中的`Array.from()`是一个静态方法,它用于将类数组对象、可迭代对象(如字符串、Map、Set等)转换成真正的数组实例。这个方法接受两个参数:源对象和映射函数(可选)。如果提供了映射函数,它会对每个源元素应用该函数并生成新的数组元素。
例如:
```javascript
let str = 'hello';
let arr = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
let numbers = [1, 2, 3];
let evenNumbers = Array.from(numbers, num => num * 2 if (num % 2 === 0); // [2, 4, 6]
```
在这个例子中,`str`被转换成了包含单个字符的新数组,而`numbers`通过映射函数只保留了偶数部分。
相关问题
JS中Array.from和Array.of的区别
`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`方法是用于创建数组的两个不同的方法,它们的功能和应用场景有所不同。
js中Array.from方法
`Array.from()` 是JavaScript的一个内置方法,用于将类数组对象(具有length属性但不是真正的数组)转换为真正的数组。以下是它的基本用法:
1. 转化空对象的实例:
```javascript
Array.from({ length: 3 });
// 结果:[undefined, undefined, undefined]
```
2. 从类数组对象创建数组,并指定回调函数来填充元素:
```javascript
let arr = Array.from({ length: 1000 }, (x, i) => i);
console.log(arr);
// 结果:[0, 1, 2, ..., 998, 999]
```
在这个例子中,回调函数 `(x, i)` 会为每个索引 `i` 生成一个对应的元素。
对于第二个示例,`arrayLike` 对象已经是类数组形式,可以直接用 `Array.from()` 来转换:
```javascript
let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 };
let arr2 = Array.from(arrayLike);
// 结果:['a', 'b', 'c']
```
这将返回一个新数组,其中的元素与 `arrayLike` 的键对应的值相同。
阅读全文