js数组迭代方法的区别

星离~ 2025-04-14 14:07:52

今天我们主要来说一下JavaScript 中 filter()、map()、forEach() 的区别,首先我们先来分别说一下这三个方法:

这三个都是 JavaScript 中常用的数组方法,但它们的功能和使用场景有所不同:

1. filter()

用途:创建一个新数组,包含通过测试(函数返回 true)的所有元素
返回值:新数组(由符合条件的元素组成)
是否改变原数组:否
示例:

javascript
const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(n => n % 2 === 0);
// evens: [2, 4]

2. map()

用途:创建一个新数组,其结果是该数组中的每个元素调用提供的函数后的返回值
返回值:新数组(由回调函数的返回值组成)
是否改变原数组:否
示例:

javascript
const numbers = [1, 2, 3];
const doubled = numbers.map(n => n * 2);
// doubled: [2, 4, 6]

3. forEach()

用途:对数组的每个元素执行提供的函数
返回值:undefined(不返回任何值)
是否改变原数组:取决于回调函数是否修改原数组
示例:

javascript
const numbers = [1, 2, 3];
numbers.forEach(n => console.log(n));
// 输出: 1, 2, 3
主要区别
方法返回值是否创建新数组用途
filter( )新数组筛选符合条件的元素

mao( )

新数组转换数组元素
forEach( )undefined遍历数组执行操作(无返回值)

使用建议

当你需要从数组中选择某些元素时 → 使用 `filter()`
当你需要转换数组中的每个元素时 → 使用 `map()`
当你只需要遍历数组执行某些操作,不需要返回值时 → 使用 `forEach()`
链式调用时,通常先 `filter()` 再 `map()` 效率更高

 

...全文
11 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15

社区成员

发帖
与我相关
我的任务
社区描述
淡━━(‾ー‾*|||━━定
htmlcssjavascript 个人社区 山西省·晋中市
社区管理员
  • 星离~
  • 前端小关
  • 辛-夷
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧