Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >根据规则过滤掉数组中的重复数据

根据规则过滤掉数组中的重复数据

作者头像
德顺
发布于 2024-03-29 04:38:53
发布于 2024-03-29 04:38:53
50800
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:0
代码可运行

今天有一个需求,有一些学生成绩的数据,里面包含一些重复信息,需要从数组对象中过滤掉重复的数据。

例如,有一个包含学生成绩的数组,其中每个学生的成绩可能出现多次。我们需要从这个数组中过滤掉重复的成绩,只保留每个学生最高的分数。

可以使用 Array.prototype.filter() 方法来过滤掉数组中的重复数据。该方法接受一个回调函数作为参数,判断数组中的每个元素是否满足某个条件。如果回调函数返回 true,则该元素将被保留在新的数组中。否则,该元素将被过滤掉。

以下是过滤掉数组中的重复数据的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const numbers = [1, 2, 3, 4, 5, 1, 2, 3];

const uniqueNumbers = numbers.filter((number, index, arr) => {
  return arr.indexOf(number) === index;
});

console.log(uniqueNumbers); // [1, 2, 3, 4, 5]

这段代码使用 Array.prototype.filter() 方法来过滤数组 numbers 中的重复数据。回调函数 (number, index, arr) => { return arr.indexOf(number) === index; } 检查数组 arr 中每个元素 number 是否只出现一次。如果元素 number 只出现一次,则回调函数返回 true,该元素将被保留在新的数组 uniqueNumbers 中。否则,回调函数返回 false,该元素将被过滤掉。

我们还可以使用 Array.prototype.filter() 方法来根据更复杂的规则过滤掉数组中的重复数据。

例如,我们可以根据对象的某个属性来过滤掉重复的数据。可以参考下面的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const students = [
  { name: "John", score: 90 },
  { name: "Mary", score: 80 },
  { name: "John", score: 95 },
  { name: "Mary", score: 85 },
  { name: "Mary", score: 75 },
];

const uniqueStudents = students.filter((student, index, arr) => {
  return arr.findIndex((s) => s.name === student.name) === index;
});

console.log(uniqueStudents);

// [
//   {
//     name: 'John',
//     score: 90,
//   },
//   {
//     name: 'Mary',
//     score: 80,
//   },
// ];

还可以只针对分数小于等于 80 的进行过滤,大于 80 的直接返回:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const uniqueStudents = students.filter((student, index, arr) => {
  return student.score > 80 || arr.findIndex((s) => s.name === student.name) === index;
});

console.log(uniqueStudents);

// [
//   {
//     name: 'John',
//     score: 90,
//   },
//   {
//     name: 'Mary',
//     score: 80,
//   },
//   {
//     name: 'John',
//     score: 95,
//   },
//   {
//     name: 'Mary',
//     score: 85,
//   },
// ];

以上就是过滤数组中重复数据的一个思路和实现,希望这篇文章对您有所帮助。

未经允许不得转载:Web前端开发资源网 » 根据规则过滤掉数组中的重复数据

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件测试|MySQL DISTINCT关键字过滤重复数据
在MySQL中,有时候我们需要从表中检索唯一的、不重复的数据。这时,我们可以使用DISTINCT关键字来过滤掉重复的数据行。在本文中,我们将深入探讨MySQL中DISTINCT的用法以及如何在查询中使用它来得到不重复的结果集。
霍格沃兹测试开发Muller老师
2023/11/08
4290
插入大批量数据 ,如何过滤掉重复数据?
最近再解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。
Java技术精选
2021/08/12
9340
MySQL 大批量插入,如何过滤掉重复数据?
加班原因是上线,解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。
民工哥
2021/08/10
1.5K0
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
综上所述,本文不只是查漏补缺的分享,更是一个详细周密的JS数组方法字典,您要是有长期的前端开发需求或是未来打算深耕前端技术,欢迎您收藏以备不时之需。要是能点个赞就更好了。
watermelo37
2025/01/22
2500
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
Oracle数据库查询重复数据及删除重复数据方法
工作中,发现Oracle数据库表中有许多重复的数据,而这个时候老板需要统计表中有多少条数据时(不包含重复数据),只想说一句MMP,库中好几十万数据,肿么办,无奈只能自己在网上找语句,最终成功解救,下面是我一个实验,很好理解。 
星哥玩云
2022/08/17
5.9K0
Oracle数据库查询重复数据及删除重复数据方法
Web - JavaScript 流程控制语句与数组
3.swith语句,除if语句之外,JavaScript提供了另外一种选择语句swith语句,swith语句的用途,当一个变量被分类讨论的情形。
stark张宇
2025/05/22
670
[译]【30秒一个知识点】Array(三)
使用 Array.prototype.filter() 创建包含给定数组中所有下标是n的倍数的元素的新数组。
ConardLi
2019/05/23
5720
全网最全情景,深入浅出解析JavaScript数组去重:数值与引用类型的全面攻略
在日常开发中,数组去重是一个不可避免的话题。不管是简单的数值数组去重,还是复杂的引用类型数组去重,掌握多种方法可以帮助开发者高效、优雅地解决实际问题。在这篇博客中,我们将从基础到进阶,结合大量代码案例,系统介绍数组去重的各种技巧。
watermelo37
2025/01/22
1790
全网最全情景,深入浅出解析JavaScript数组去重:数值与引用类型的全面攻略
分享6个对象数组去重的方法
使用 filter() 方法过滤掉重复的元素,使用 findIndex() 方法判断对象是否重复,代码如下:
前端达人
2023/02/17
4.5K0
分享6个对象数组去重的方法
js 数组去除重复数据-5 个提升你 JS 编码水平的实例
  虽然 2020 的今天,各种前端框架、工具林立,而这些框架跟工具也帮我们提前解决了不少麻烦的问题,但是工具始终是工具,扎实的基本功才是最核心的,现在一起来通过几个实际的代码片段来提高我们原生 JS 的编码水平。
宜轩
2022/12/26
1.7K0
图解 Map、Reduce 和 Filter 数组方法
map、reduce 和 filter 是三个非常实用的 JavaScript 数组方法,赋予了开发者四两拨千斤的能力。我们直接进入正题,看看如何使用(并记住)这些超级好用的方法!
grain先森
2019/05/10
1.4K0
图解 Map、Reduce 和 Filter 数组方法
最全的JavaScript常见的操作数组的函数方法宝典
JavaScript在其内部封装了一个Array对象,使得我们可以方便地使用数组这种简单的数据结构,同时,也在 Array对象的原型上定义了一些常用并且很有用的操作数组的函数。
前端迷
2020/11/19
7690
MySQL 批量插入:如何不插入重复数据?
业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入
程序猿DD
2021/09/03
3.9K0
【JS】208-图解 Map、Reduce 和 Filter 数组方法
map、reduce 和 filter 是三个非常实用的 JavaScript 数组方法,赋予了开发者四两拨千斤的能力。我们直接进入正题,看看如何使用(并记住)这些超级好用的方法!
pingan8787
2019/07/23
2.1K0
【JS】208-图解 Map、Reduce 和 Filter 数组方法
JS数组奇巧淫技
前段时间接手一个项目,逻辑晦涩难懂,代码庞大冗余,上手极其困难。很大的原因就是数组方法使用不熟练,导致写出了很多垃圾代码,其实很多地方稍加改动就可以变得简单高效又优雅。因此我在这里总结下数组的常用方法和奇巧淫技(奇巧淫技主要是reduce~)。
刘小夕
2020/07/15
1.2K0
JS数组奇巧淫技
SQL 中的一些小巧但常用的关键字
前面的几篇文章中,我们大体上介绍了 SQL 中基本的创建、查询语句,甚至也学习了相对复杂的连接查询和子查询,这些基本功相信你也一定掌握的不错,那么本篇则着重介绍几个技巧方面的关键字,能够让你更快更有效率的写出一些 SQL。
Single
2019/05/25
7550
8个常用的JavaScript数组方法
https://my.oschina.net/mikeowen/blog/4748663
@超人
2021/02/26
3440
8个常用的JavaScript数组方法
Stream流在日常开发中的使用
Java 8 引入的 Stream API 提供了丰富的功能,使得对集合数据进行处理变得更加简洁和高效。Stream API提供了丰富的方法来操作数据流,其中包括了map、flatMap、filter等常用方法。这些方法使得对集合数据进行转换、过滤、分组、排序等操作变得简单而直观。了不起整理了日常开发中经常使用到的方法,帮助老铁们更好地理解和运用Java 8 Stream API。
灬沙师弟
2024/06/04
1650
Stream流在日常开发中的使用
比较三种非破坏性处理数组的方法
目的是帮助你在需要处理数组的时候在这些特性之间做出选择。如果你还不知道.reduce()和.flatMap(),这里将向你解释它们。
chuckQu
2023/09/01
1980
比较三种非破坏性处理数组的方法
MySQL:查询(万字超详细版)
之后,可以通过as关键字来为查询结果中的列指定别名,as和引号可以省略,但如果别名中存在空格就不能省略引号了
2的n次方
2024/10/15
8440
MySQL:查询(万字超详细版)
推荐阅读
相关推荐
软件测试|MySQL DISTINCT关键字过滤重复数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档