当前位置:首页 > 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循环遍历数组并筛选元素:

js实现筛选数组

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]

复杂条件的筛选

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

js实现筛选数组

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

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…