Javascript中有许多内置函数,filter() 是其中之一。它的作用是从一个数组中筛选出符合条件的元素并返回一个新数组。
filter() 的语法如下:
array.filter(function(currentValue, index, arr), thisValue)
参数说明:
- currentValue:数组中正在被处理的当前元素
- index:当前元素在数组中的下标
- arr:正在被处理的数组
- thisValue(可选):对象作为函数执行时使用该值作为 this(即函数执行上下文)
filter() 方法接受一个函数作为参数,该函数接受三个参数:当前元素,当前元素的索引和整个数组。函数必须返回一个布尔值,表示当前元素是否符合条件。如果返回 true,则该元素将被保留在新数组中,反之则会被过滤掉。
让我们看一个例子,假设有一个数组存储了 1 到 10 的整数。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
现在我们要从中筛选出所有大于等于 5 的元素。可以通过 filter() 方法来实现:
const result = numbers.filter(function(number) {
return number >= 5;
});
console.log(result); // 输出 [5, 6, 7, 8, 9, 10]
上述代码中,filter() 函数接收一个返回值为 true 或 false 的函数。在这个函数中,如果当前元素大于等于 5,则返回 true。反之,如果当前元素小于 5,则返回 false。最终,保留了符合条件的元素,即大于等于 5 的元素,以一个新数组的形式返回。
除了定义一个函数之外,还可以使用箭头函数简写:
const result = numbers.filter(number => number >= 5);
console.log(result); // 输出 [5, 6, 7, 8, 9, 10]
filter() 方法也可以用于数组中的对象。假设有一个存储了多个人信息的数组。
const people = [
{ name: 'Lucas', age: 25 },
{ name: 'Emma', age: 21 },
{ name: 'Tom', age: 30 },
{ name: 'Jane', age: 18 },
];
现在我们要筛选出年龄大于等于 25 的人。可以通过 filter() 方法来实现:
const result = people.filter(function(person) {
return person.age >= 25;
});
console.log(result); // 输出 [{ name: 'Lucas', age: 25 }, { name: 'Tom', age: 30 }]
同样的,我们也可以使用箭头函数简写:
const result = people.filter(person => person.age >= 25);
console.log(result); // 输出 [{ name: 'Lucas', age: 25 }, { name: 'Tom', age: 30 }]
在实际开发中,filter() 方法常用于筛选符合条件的数据,如搜索、过滤、分类等场景中。其简单易用,且可以快速实现数组元素的筛选,可以说是开发中不可或缺的方法之一。
以上就是javascript filter实现的详细内容,更多请关注编程网其它相关文章!