当前位置:首页 > JavaScript

js filter实现

2026-04-06 09:51:42JavaScript

在 JavaScript 中实现数组过滤

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

js filter实现

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 实现:

js filter实现

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);

标签: jsfilter
分享给朋友:

相关文章

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js实现刷新

js实现刷新

刷新当前页面 使用 location.reload() 方法可以强制刷新当前页面。该方法接受一个布尔参数,默认为 false,表示从缓存中加载页面;设为 true 时强制从服务器重新加载。 // 从…