`filter` 和 `map` 都是 JavaScript 数组的方法,它们的作用不同。
`filter` 方法可以过滤数组中的元素,返回一个新的数组,新数组中只包含符合条件的元素。`filter` 方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行判断,如果返回值为 `true`,则该元素会被保留在新数组中,否则会被过滤掉。
例如,以下代码使用 `filter` 方法过滤出数组中所有大于等于 5 的元素:
```javascript
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const filteredArr = arr.filter(num => num >= 5);
console.log(filteredArr); // 输出 [5, 6, 7, 8, 9]
```
`map` 方法可以对数组中的每个元素进行处理,并返回一个新的数组,新数组中包含了处理后的元素。`map` 方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行处理,并返回处理后的结果。
例如,以下代码使用 `map` 方法将数组中的每个元素都乘以 2:
```javascript
const arr = [1, 2, 3, 4, 5];
const mappedArr = arr.map(num => num * 2);
console.log(mappedArr); // 输出 [2, 4, 6, 8, 10]
```
因此,`filter` 和 `map` 方法的区别在于它们的作用不同:`filter` 方法用于过滤数组中的元素,返回一个新的数组;而 `map` 方法用于对数组中的每个元素进行处理,并返回一个新的数组。