首页 > 编程语言 >【转】[JavaScript] 数组的 filter 用法

【转】[JavaScript] 数组的 filter 用法

时间:2025-01-17 10:32:06浏览次数:1  
标签:JavaScript 用法 filter num let numbers 数组

转自:kimi.ai

filter 方法用于创建一个新数组,新数组中的元素是通过测试指定条件(由提供的函数实现)的所有元素。以下是其详细用法:

基本语法

JavaScript复制
array.filter(function(currentValue[, index[, array]]) {
    // return true to keep element, false to remove element
}[, thisArg])
  • array:要操作的数组。
  • function:为数组中的每个元素执行的函数。
    • currentValue:当前正在处理的元素。
    • index(可选):当前正在处理的元素的索引。
    • array(可选):调用 filter 方法的数组。
  • thisArg(可选):执行回调时使用的 this 值。

返回值

返回一个新数组,新数组的元素是通过测试指定条件的所有元素。如果没有任何元素通过测试,则返回一个空数组。

示例

  1. 基本用法:过滤出数组中的偶数 JavaScript复制
    let numbers = [1, 2, 3, 4, 5, 6];
    let evenNumbers = numbers.filter(function(num) {
        return num % 2 === 0;
    });
    console.log(evenNumbers); // [2, 4, 6]
  2. 使用箭头函数简化代码 JavaScript复制
    let numbers = [1, 2, 3, 4, 5, 6];
    let evenNumbers = numbers.filter(num => num % 2 === 0);
    console.log(evenNumbers); // [2, 4, 6]
  3. 同时使用索引和数组参数 JavaScript复制
    let numbers = [1, 2, 3, 4, 5, 6];
    let filteredNumbers = numbers.filter((num, index, arr) => {
        return num > 3 && index % 2 === 0;
    });
    console.log(filteredNumbers); // [4, 6]
  4. 处理对象数组 JavaScript复制
    let users = [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 },
        { id: 3, name: 'Charlie', age: 20 },
        { id: 4, name: 'David', age: 35 }
    ];
    let youngUsers = users.filter(user => user.age < 30);
    console.log(youngUsers); 
    // [{ id: 1, name: 'Alice', age: 25 }, { id: 3, name: 'Charlie', age: 20 }]
  5. 使用 thisArg 参数 JavaScript复制
    let numbers = [1, 2, 3, 4, 5, 6];
    let min = 3;
    let filteredNumbers = numbers.filter(function(num) {
        return num > this.min;
    }, { min: min });
    console.log(filteredNumbers); // [4, 5, 6]

注意事项

  • filter 方法不会修改原数组,而是返回一个新数组。
  • filter 方法不会遍历数组中被删除或从未被赋值的元素。
  • filter 方法的回调函数可以接受多个参数,但通常只需要使用 currentValue 参数。如果需要使用索引或数组本身,可以按需添加。
  • filter 方法可以与箭头函数一起使用,使代码更加简洁。
  • filter 方法可以用于处理复杂的数据结构,如对象数组,通过返回对象的特定属性来创建新数组。
  • filter 方法的回调函数应该返回一个布尔值,表示当前元素是否应该包含在新数组中。如果返回 true,则当前元素会被包含在新数组中;如果返回 false,则当前元素会被排除在新数组之外。

标签:JavaScript,用法,filter,num,let,numbers,数组
From: https://www.cnblogs.com/z5337/p/18676439

相关文章

  • 【转】[JavaScript] 数组的 map 用法
    转自:kimi.aimap方法是数组的一个非常强大的方法,它用于创建一个新数组,新数组中的元素是调用一次提供的函数后的返回值。以下是其详细用法:基本语法JavaScript复制array.map(function(currentValue[,index[,array]]){//returnelementfornewarray,afterexecuting......
  • 【转】[JavaScript] 数组的 push 、shift 、splice
    push方法用于将一个或多个元素添加到数组的末尾,并返回新数组的长度。以下是其详细用法:基本语法JavaScript复制array.push(item1[,item2[,...,itemN]])array:要操作的数组。item1,item2,...,itemN:要添加到数组末尾的元素,可以是一个或多个。返回值返回新数组......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript中主要有八种类型的值,包括七种原始类型(PrimitiveTypes)和一种对象类型(ObjectTypes)。这八种类型分别是:Number:表示数字,包括整数和浮点数。如:42,3.14159。BigInt:表示任意大的整数。这是一种在ES2020中引入的新类型,用于表示比Number.MAX_SAFE_INTEGER更大的整数。如......
  • C语言break和continue用法详解(跳出循环,新手必看)
    使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。C语言break关键字在我原创教程里的《C语言switchcase语句》一文中,我讲了:用 break来跳出switch语句。当break关键字用于while、for循环时,会终止循......
  • C语言typedef用法详解(新手必看)
    C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是stu,要想定义一个结构体变量就得这样写:structstustu1;struct看起来就是多余的,但不写又会报错。如果为structstu起了......
  • Vue 开发者必备的 JavaScript 基础知识
    变量与数据类型为什么重要:Vue3的响应式系统严重依赖于正确的变量声明。组合式API要求理解 const 用于ref和reactive对象。类型意识有助于Vue3的模板渲染和prop验证。const count= ref(0)const user= reactive({  name: 'John',  age: 30......
  • 洛谷题单指南-线段树的进阶用法-P3168 [CQOI2015] 任务查询系统
    原题链接:https://www.luogu.com.cn/problem/P3168题意解读:一个任务管理系统,能够查询在某个时间点运行的任务中优先级最小的k个任务的优先级之和。解题思路:由于总时间n不超过100000,考虑针对所有时刻建立可持久化线段树,根节点为root[i]的线段树维护时刻i的任务情况,节点区间表示......
  • openlayers 6/7 filter 过滤 颜色过滤
    openlayersfilter过滤颜色过滤目录openlayersfilter过滤颜色过滤简介主要特点使用场景示例创建filter使用过滤颜色设置模式切换tips线上示例简介OpenLayers是一个开源的JavaScript库,用于在网页上显示地图。它允许开发者创建交互......
  • Linux驱动开发:处理空指针错误,ERR_PTR、IS_ERR、PTR_ERR用法
    免责声明:本文内容摘自《Linux设备驱动开发》一书,作者为JohnMadieu,译者为袁鹏飞、刘寿永,由人民邮电出版社出版。本文仅为分享知识和讨论之用,非商业用途。书籍版权归原作者及出版社所有。本人及本博客不对因使用或误用本文内容而产生的任何后果负责。请读者尊重版权,合理使用内容。......
  • c语言随机数rand与srand用法详解
    源文件test.c:#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){//生成并打印5个随机数for(inti=0;i<5;i++){//生成随机数并打印printf("第%d个随机数:%d\n",i+1,rand());}return0;}注意点:1)当不用srand()函数设置种子时,系统......