当前位置: 首页 > news >正文

深入理解 JS/TS 中的 filter 方法及其布尔值筛选功能

今天写需求的时候,需要对后端传回来的数据做乱码校验处理,需要筛除乱码数据。

这里我使用正则表达式并封装了一个判断是否为正常字段的方法。(如果是正常字段返回true,乱码字段返回false)

对后端返回的数据,可以直接用filter进行乱码字段的筛除。

在这篇博客里我衍生为讲解“使用filter处理数组从中筛出符合条件的元素

什么是filter?

filter 方法是数组对象的一个内置方法,用于创建一个新数组,其中包含所有通过指定函数测试的元素。(filter 方法会遍历数组中的每个元素,并将那些使测试函数返回 true 的元素组成一个新的数组。)

❗再三强调,会返回一个新的数组哦!!!但使用了filter不会对原数组产生影响。

filter的语法
array.filter(callback(element[, index[, array]])[, thisArg])
  • callback: 测试函数。
    • element: 当前元素。
    • index (可选): 当前元素的索引。
    • array (可选): 调用 filter 的数组。
  • thisArg (可选): 执行 callback 时用作 this 的值。

(我在使用时只传入了当前元素,并在测试函数中对元素进行正则测试/判断)

返回值

一个新的数组,包含所有使 callback 返回 true 的元素。如果没有元素通过测试,则返回一个空数组。

(拿我的需求做比方,如果需要留下的是正常元素,就要使得测试函数正常元素的返回值为true哦,但如果我要筛选出来的是乱码元素,就需要使得测试函数乱码元素的返回值为true)

传入返回布尔值的函数进行筛选

filter 方法的强大和遍历之处在于允许我们传入一个返回布尔值的函数。这个函数用于测试数组中的每个元素,并根据测试结果决定是否保留该元素。


举个简单的使用例子

需求:筛选偶数
const numbers = [1, 2, 3, 4, 5, 6];

// 定义一个回调函数来测试是否为偶数
const isEven = (num) => num % 2 === 0;

// 使用 filter 方法筛选偶数
const evenNumbers = numbers.filter(isEven);

console.log(evenNumbers); // 输出: [2, 4, 6]

测试函数:isEven

测试目的:测试一个数字是否为偶数

numbers.filter(isEven)返回值:由numbers数组中偶数组成的数组

相关文章:

  • 移动端 UI 风格,诠释精致
  • 【计算机体系结构】
  • 啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码
  • getPhysicalNumberOfCells获取列数不是合并前实际列数
  • Linux操作系统
  • vos3000外呼系统通话会话超时中断详解
  • Day10—Spark SQL基础
  • HTML(12)——背景属性
  • React@16.x(34)动画(中)
  • 【linuxC语言】第一个简单的TCP/IP服务器
  • 智慧校园综合门户有哪些特点?
  • RTSP协议分析与安全实践
  • 计算机组成原理 —— 存储系统(DRAM和SRAM,ROM)
  • [Django学习]Q对象实现多字段模糊搜索
  • ping命令返回结果实例分析
  • 【LinuxC语言】阻塞、回调与轮询快速理解
  • 压力测试Monkey命令参数和报告分析
  • 大模型参数高效微调学习笔记
  • 前端练习小项目——视觉冲击卡片
  • 单片机练习题4
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆
  • 巴基斯坦信德省首府卡拉奇发生爆炸
  • 中国中古史集刊高质量发展论坛暨《唐史论丛》创刊四十周年纪念会召开
  • 吴清:基金业绩差的必须少收管理费,督促基金公司从“重规模”向“重回报”转变
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 习近平致电祝贺默茨当选德国联邦总理