当前位置:首页 > JavaScript

js筛选功能实现

2026-04-04 06:30:09JavaScript

JavaScript 筛选功能实现

基本数组筛选

使用 Array.prototype.filter() 方法对数组进行筛选:

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}]

多条件筛选

结合多个条件进行复杂筛选:

js筛选功能实现

const products = [
  { name: 'Laptop', price: 1000, inStock: true },
  { name: 'Phone', price: 500, inStock: false },
  { name: 'Tablet', price: 300, inStock: true }
];

const affordableInStock = products.filter(product => 
  product.price < 800 && product.inStock
);
console.log(affordableInStock); // 输出: [{name: 'Tablet', price: 300, inStock: true}]

动态筛选

根据用户输入动态筛选数据:

const searchInput = document.getElementById('search');
const data = ['apple', 'banana', 'cherry', 'date'];

searchInput.addEventListener('input', (e) => {
  const searchTerm = e.target.value.toLowerCase();
  const filteredData = data.filter(item => 
    item.toLowerCase().includes(searchTerm)
  );
  console.log(filteredData);
});

正则表达式筛选

使用正则表达式进行更灵活的匹配:

js筛选功能实现

const words = ['hello', 'world', 'javascript', 'filter'];
const pattern = /^[a-j]/i;

const matchedWords = words.filter(word => pattern.test(word));
console.log(matchedWords); // 输出: ['hello', 'javascript', 'filter']

性能优化

对于大型数据集,考虑使用更高效的筛选方法:

// 使用for循环替代filter()以获得更好性能
function fastFilter(array, condition) {
  const result = [];
  for (let i = 0; i < array.length; i++) {
    if (condition(array[i], i, array)) {
      result.push(array[i]);
    }
  }
  return result;
}

链式筛选

可以链式调用多个筛选方法:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
  .filter(n => n > 3)
  .filter(n => n % 2 === 0)
  .map(n => n * 2);

console.log(result); // 输出: [8, 12, 16, 20]

注意事项

  1. filter() 方法不会改变原始数组,而是返回新数组
  2. 确保筛选条件函数是纯函数,避免副作用
  3. 对于复杂条件,可以将筛选逻辑提取为单独函数提高可读性
  4. 在React等框架中,筛选常用于状态管理

以上方法涵盖了JavaScript中实现筛选功能的常见场景和技术。

标签: 功能js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

vue实现功能

vue实现功能

Vue 实现功能的方法 Vue.js 是一个流行的前端框架,用于构建用户界面。以下是几种常见的功能实现方法: 数据绑定 Vue 提供了双向数据绑定,可以通过 v-model 指令实现表单输入和应用状…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

vue 实现 功能

vue 实现 功能

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用程序。以下是一些常见的 Vue 功能实现方法: 数据绑定 Vue 的核心特性之一是数据绑定,可以通过 v-model 指令实现双向数据绑…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…