`map()` 是 JavaScript 数组提供的一个高阶函数,它用于对数组中的每个元素执行指定的函数,并返回一个新的数组,新数组中的元素是原数组中的每个元素经过函数处理后的结果。
`map()` 函数的语法如下:
```javascript
array.map(callback(currentValue, index, array), thisArg);
```
其中:
- `callback` 是一个函数,它会被应用到数组中的每个元素上,并且会接收三个参数:
- `currentValue`:当前正在被处理的元素。
- `index`(可选):当前元素的索引。
- `array`(可选):调用 `map()` 方法的数组。
- `thisArg`(可选):传递给 `callback` 函数的 `this` 值。
`map()` 函数会返回一个新数组,其中每个元素都是由 `callback` 函数返回的结果。原始数组不会受到影响。
下面是一些关于 `map()` 函数的例子:
1. **对数组中的每个元素进行平方操作:**
```javascript
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map(num => num * num);
console.log(squaredNumbers); // [1, 4, 9, 16, 25]
```
2. **将数组中的字符串元素转换为大写:**
```javascript
const fruits = ["apple", "banana", "orange"];
const capitalizedFruits = fruits.map(fruit => fruit.toUpperCase());
console.log(capitalizedFruits); // ["APPLE", "BANANA", "ORANGE"]
```
3. **将对象数组中的特定属性提取出来:**
```javascript
const people = [
{ name: "Alice", age: 30 },
{ name: "Bob", age: 25 },
{ name: "Charlie", age: 40 }
];
const names = people.map(person => person.name);
console.log(names); // ["Alice", "Bob", "Charlie"]
```
4. **计算数组中每个数字的平均值:**
```javascript
const scores = [85, 90, 78, 95, 88];
const average = scores.reduce((total, score) => total + score, 0) / scores.length;
console.log(average); // 87.2
```
`map()` 函数非常有用,它可以让你在不修改原始数组的情况下对数组的每个元素进行操作,并生成一个新的数组。它在函数式编程中广泛用于数据转换和操作。