📜  过滤出数组 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:41:54.383000             🧑  作者: Mango

过滤出数组 js - Javascript

在Javascript中,我们经常会需要从一个数组中过滤出一部分符合条件的元素,这时候就要用到数组的 filter() 方法。本文将介绍 filter() 方法的用法,以及一些常见的应用场景。

用法

filter() 方法基本上是接收一个回调函数,这个回调函数决定了数组中的每个元素是否需要加入到新数组中。因此,我们可以根据 filter() 方法的返回值来进行筛选。这个回调函数会接收三个参数:当前元素,当前元素的下标,以及原数组。例如:

const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.filter((item, index, arr) => {
  return item > 2;
});

console.log(filteredArr);
// [3, 4, 5]

上面的例子中,我们通过 filter() 方法过滤出了大于 2 的元素。

常见应用
模糊搜索

我们经常会需要在一个数组中搜索符合某个关键字的元素,并将这些元素筛选出来,通常称为 “模糊搜索”。这时候,我们可以使用 filter() 方法来进行筛选。例如:

const users = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Tom' },
  { id: 3, name: 'Amy' },
  { id: 4, name: 'George' },
];

const keyword = 'o';
const filteredUsers = users.filter((user) => {
  return user.name.indexOf(keyword) !== -1;
});

console.log(filteredUsers);
// [{ id: 1, name: 'John' }, { id: 2, name: 'Tom' }, { id: 4, name: 'George' }]

上面的例子中,我们通过 filter() 方法过滤出了名字中包含字母 “o” 的用户。

筛选出唯一元素

有时候,我们需要从一个数组中筛选出唯一的元素。这时候可以利用 filter() 和 indexOf() 方法进行操作,例如:

const arr = [1, 2, 3, 2, 4, 5, 1];
const uniqueArr = arr.filter((item, index, arr) => {
  return arr.indexOf(item) === index;
});

console.log(uniqueArr);
// [1, 2, 3, 4, 5]

上面的例子中,我们通过 filter() 和 indexOf() 方法过滤出了数组中唯一的元素。

总结

filter() 方法是 Javascript 数组中的一个重要方法,可以方便地从一个数组中过滤出符合条件的元素。本文介绍了 filter() 方法的用法,以及一些常见应用场景,希望能够帮助读者更好地理解和应用 filter() 方法。