0%

javascript-refactor-use-find-insteadof-equal

介绍

在日常编程中,我们经常需要在一个数组中查找某个元素,查找元素的方式有很多,大多数人喜欢用===来进行比较,比如下面的代码,从用户列表中找出用户名为Philip的用户:

用户列表如下:

1
2
3
4
5
const users = [
{ name: 'Alice' },
{ name: 'Bob' },
{ name: 'Philip' },
];

使用for...of进行查找

1
2
3
4
5
6
7
8
9

function findUserByName(users, name) {
for (const u of users) {
if (u.name === name) {
return u;
}
}
return null; // 其实这句可以省略,如果没有找到则自动返回 undefined
}

使用find进行查找

其实上面的代码可以使用find来实现,find会返回数组中第一个满足条件的元素,如果没有找到则返回undefined

1
2
3
function findUserByName(users, name) {
return users.find(u => u.name === name);
}

使用find的好处是代码更简洁,更加符合函数式编程风格,更容易阅读和维护。