JavaScript 数组常用方法整理:写业务代码时最常用的是哪几个

0 阅读

数组是 JavaScript 里使用频率非常高的数据结构。

无论是列表渲染、接口数据处理、条件筛选,还是状态更新,很多逻辑最后都会落到数组操作上。

所以理解常用数组方法的区别,比死记语法更重要。

map:把一个数组变成另一个数组

map 最适合做转换。

1const numbers = [1, 2, 3];
2const result = numbers.map(item => item * 2);

它不会修改原数组,而是返回一个新数组。

这也是它在前端渲染里特别常见的原因,例如把数据列表映射成组件列表。

filter:筛选出符合条件的项

filter 用来保留符合条件的元素。

1const users = [
2  { name: 'Tom', active: true },
3  { name: 'Jerry', active: false }
4];
5
6const activeUsers = users.filter(user => user.active);

它同样会返回一个新数组。

find:找到第一个符合条件的元素

如果你只需要一个结果,而不是一个数组,find 更合适。

1const user = users.find(item => item.name === 'Tom');

它找到后就会返回对应项,没有找到则返回 undefined

forEach:只做遍历,不返回结果

forEach 更适合执行某些副作用操作。

例如:

1list.forEach(item => {
2  console.log(item);
3});

如果你的目标是生成新数组,那通常不该用 forEach

some 和 every

这两个方法也很实用:

  • some:只要有一个满足条件就返回 true
  • every:必须全部满足才返回 true

它们特别适合做条件判断。

写在最后

数组方法的关键不在于记住名字,而在于先想清楚你的意图:

  • 要转换,就用 map
  • 要筛选,就用 filter
  • 要找一个,就用 find
  • 只遍历执行逻辑,就用 forEach

只要意图和方法对上,代码会更清楚,也更不容易写乱。