当前位置:首页 > 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循环手动筛选
通过遍历数组,手动筛选符合条件的元素并存入新数组。

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()返回其索引,适用于查找特定元素。

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
分享给朋友:

相关文章

vue实现数组平均值

vue实现数组平均值

计算数组平均值的方法 在Vue中计算数组的平均值可以通过多种方式实现。以下是几种常见的方法: 方法一:使用计算属性 export default { data() { retu…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…