当前位置:首页 > JavaScript

js实现筛选数组

2026-03-01 13:28:45JavaScript

筛选数组的常用方法

在JavaScript中,数组筛选可以通过多种方式实现,以下是几种常见的方法:

filter方法 使用数组的filter方法可以创建一个新数组,包含通过测试的所有元素:

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

for循环 通过传统的for循环遍历数组并筛选元素:

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = [];
for (let i = 0; i < numbers.length; i++) {
  if (numbers[i] % 2 === 0) {
    evenNumbers.push(numbers[i]);
  }
}
console.log(evenNumbers); // [2, 4]

reduce方法 使用reduce方法可以将数组缩减为满足条件的元素集合:

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.reduce((acc, num) => {
  if (num % 2 === 0) {
    acc.push(num);
  }
  return acc;
}, []);
console.log(evenNumbers); // [2, 4]

复杂条件的筛选

当需要基于多个条件筛选时,可以在回调函数中组合条件:

const users = [
  { name: 'Alice', age: 25, active: true },
  { name: 'Bob', age: 30, active: false },
  { name: 'Charlie', age: 22, active: true }
];
const activeYoungUsers = users.filter(user => user.active && user.age < 30);
console.log(activeYoungUsers); 
// [{ name: 'Alice', age: 25, active: true }, { name: 'Charlie', age: 22, active: true }]

筛选并修改元素

使用mapfilter组合可以在筛选的同时转换元素:

const products = [
  { id: 1, name: 'Laptop', price: 999 },
  { id: 2, name: 'Phone', price: 699 },
  { id: 3, name: 'Tablet', price: 499 }
];
const expensiveProductNames = products
  .filter(product => product.price > 500)
  .map(product => product.name);
console.log(expensiveProductNames); // ['Laptop', 'Phone']

性能考虑

对于大型数组,filter方法通常比手动循环更高效,因为它是原生实现的。但在某些特殊情况下,提前终止循环可能更优:

const bigArray = Array(1000000).fill().map((_, i) => i);
const result = [];
for (let i = 0; i < bigArray.length; i++) {
  if (bigArray[i] > 500) break; // 提前终止
  if (bigArray[i] % 2 === 0) {
    result.push(bigArray[i]);
  }
}

js实现筛选数组

标签: 数组js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

vue实现数组

vue实现数组

vue实现数组操作 在Vue中操作数组需要使用Vue提供的响应式方法,直接修改数组元素不会触发视图更新。以下是常见的数组操作方法: 添加元素 使用push、unshift或splice方法添加元素:…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令…