当前位置:首页 > JavaScript

js实现筛选数组

2026-01-30 22:23:31JavaScript

筛选数组的方法

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

使用Array.prototype.filter()方法
filter()方法创建一个新数组,包含通过测试的所有元素。

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

使用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]

使用Array.prototype.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]

使用Array.prototype.find()findIndex()
find()返回第一个符合条件的元素,findIndex()返回其索引,适用于查找特定元素。

js实现筛选数组

const numbers = [1, 2, 3, 4, 5];
const firstEven = numbers.find(num => num % 2 === 0);
console.log(firstEven); // 输出: 2

筛选复杂对象数组

对于对象数组,可以根据对象的属性值筛选:

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

多条件筛选

可以通过逻辑运算符(如&&||)组合多个条件:

const products = [
  { name: 'Laptop', price: 1000, stock: 5 },
  { name: 'Phone', price: 500, stock: 0 },
  { name: 'Tablet', price: 300, stock: 10 }
];
const availableProducts = products.filter(
  product => product.price < 800 && product.stock > 0
);
console.log(availableProducts); // 输出: [{ name: 'Tablet', price: 300, stock: 10 }]

动态筛选条件

可以将筛选条件抽象为函数,实现动态筛选:

const numbers = [1, 2, 3, 4, 5];
const isEven = num => num % 2 === 0;
const filteredNumbers = numbers.filter(isEven);
console.log(filteredNumbers); // 输出: [2, 4]

以上方法覆盖了从简单到复杂的筛选需求,可以根据具体场景选择合适的方式。

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

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现二叉树

js实现二叉树

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

js实现dh

js实现dh

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