js filter实现
在 JavaScript 中实现数组过滤
filter 是 JavaScript 数组的一个内置方法,用于创建一个新数组,包含通过指定函数测试的所有元素。以下是其基本语法和用法:

const newArray = array.filter(function(element, index, array) {
// 返回 true 保留元素,false 过滤掉
});
使用箭头函数简化
const newArray = array.filter(element => condition);
示例:过滤偶数
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
示例:过滤对象数组
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
const adults = users.filter(user => user.age >= 25);
console.log(adults);
// [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]
实现原理
filter 方法的 polyfill 实现:

Array.prototype.myFilter = function(callback) {
const result = [];
for (let i = 0; i < this.length; i++) {
if (callback(this[i], i, this)) {
result.push(this[i]);
}
}
return result;
};
性能注意事项
filter 会创建一个新数组,如果处理大型数组需要注意内存使用。对于性能敏感的场景,可以考虑使用 for 循环直接修改原数组。
链式调用
filter 可以与其他数组方法链式调用:
const result = array
.filter(x => x > 10)
.map(x => x * 2);






