js数组中对象去重的方法

article/2025/11/2 10:59:03

一个数组中含有对象,并且去除数组中重复的对象

  1. id相同的,保留第一个,其它的删除
      let arr = [{ id: 0, name: "张三" },{ id: 1, name: "李四" },{ id: 2, name: "王五" },{ id: 3, name: "赵六" },{ id: 1, name: "孙七" },{ id: 2, name: "周八" },{ id: 2, name: "吴九" },{ id: 3, name: "郑十" },];const removeDuplicateObj = (arr) => {let obj = {};arr = arr.reduce((newArr, next) => {obj[next.id] ? "" : (obj[next.id] = true && newArr.push(next));return newArr;}, []);return arr;};console.log(removeDuplicateObj(arr));

在这里插入图片描述
2. id相同的,保留第一个,其它的删除------------- for循环方法

      let arr = [{ id: 0, name: "张三" },{ id: 1, name: "李四" },{ id: 2, name: "王五" },{ id: 3, name: "赵六" },{ id: 1, name: "孙七" },{ id: 2, name: "周八" },{ id: 2, name: "吴九" },{ id: 3, name: "郑十" },];const removeDuplicateObj = (arr) => {let newArr = []let obj = {};for (var i = 0; i < arr.length; i++) {if (!obj[arr[i].id]) {newArr.push(arr[i]);obj[arr[i].id] = true;}}return newArr};console.log(removeDuplicateObj(arr));

在这里插入图片描述

  1. 判断对象中的每一个属性,若其对应的属性值都相同,则去重
      let arr = [{ id: 0, name: "张三", age: 23 },{ id: 1, name: "李四", age: 23 },{ id: 2, name: "王五", age: 24 },{ id: 3, name: "赵六", age: 25 },{ id: 1, name: "孙七", age: 23 },{ id: 2, name: "周八", age: 24 },{ id: 2, name: "吴九", age: 26 },{ id: 3, name: "郑十", age: 25 },];const removeDuplicateObj = (arr) => {// 缓存用于记录const newArr = [];for (const t of arr) {// 检查缓存中是否已经存在if (newArr.find((c) =>c.id === t.id &&c.age === t.age )) {// 已经存在说明以前记录过,现在这个就是多余的,直接忽略continue;}// 不存在就说明以前没遇到过,把它记录下来newArr.push(t);}// 记录结果就是过滤后的结果return newArr;};console.log(removeDuplicateObj(arr));

在这里插入图片描述


http://chatgpt.dhexx.cn/article/5H6kORsU.shtml

相关文章

js实现数组去重的方式(7种)

目录 JS数组去重的方式1.利用Set()Array.from()2.利用两层循环数组的splice方法3.利用数组的indexOf方法4.利用数组的includes方法5.利用数组的filter()indexOf()6.利用Map()7.利用对象 JS数组去重的方式 例&#xff1a;将下面数组去除重复元素&#xff08;以多种数据类型为例…

js数组去重(9种方法),你都会了吗?

以下共有九种数组去重的方式和详解&#xff08;包含对象数组去重&#xff09;&#xff1a; 1.利用Array.from(new Set)去重&#xff1a; // 1.利用set去重 // Set是es6新增的数据结构&#xff0c;似于数组&#xff0c;但它的一大特性就是所有元素都是唯一的&#xff0c;没有…

解决Linux没有ens33

#临时关闭 systemctl stop NetworkManager # 永久关闭网络管理命令 systemctl disable NetworkManager #开启网络服务 systemctl start network.service

【ubuntu虚拟机】ens33未出现在ifconfig问题

事情发生与2023年4月12日&#xff0c;windows上安装了docker-desktop&#xff0c;奈何wsl不好用&#xff0c;便卸载了&#xff0c;之后我的虚拟机ubuntu无法联网&#xff0c;于是开始解决之旅 事故原因 ifconfig查了一下&#xff0c;没有ens33网卡&#xff0c;于是用ip addres…

Centos开机后ens33网卡失效连不上网

今天使用xshell连接虚拟机一直失败 打开虚拟机ip addr 发现如下问题 解决方案 1.尝试重启网关 ifup ens33 &#xff08;无法解决&#xff09; # ifup ens332.停止网卡&#xff0c;设置disable后重新启动 &#xff08;依旧失败&#xff09; # systemctl stop NetworkManager…

centos7网络配置没有ens33文件

注意&#xff1a;此教程中的centos是已经能够上网的状态&#xff01; 问题来源 需要使用centos7来搭建一些服务器&#xff0c;由于我用的VMware总是自己变ip并且不能设置&#xff0c;所以只能从centos系统配置文件下手 。 从网上教程来看&#xff0c;centos7 的网卡名叫 ens33&…

Linux 初始化网络配置ens33

配置文件路径&#xff1a; [rootnode2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno #IPV6INITyes #IPV6_AUTOCONFyes #IPV6_DEFROUTEyes #IPV6_PEERDNSyes #IPV6_PEERROUTESyes #IPV6_FAILURE_FATALno…

怎么修改Linux网络名为ens33,Centos7更改ens33网卡名称为eth0

用ifconfig查看网卡名称为ens33&#xff0c;现在要将它修改成eth0 [rootlocalhost ~]# ifconfig ens33: flags4163 mtu 1500 inet 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 2409:8a02:9014:8440:20c:29ff:fe95:cc8f prefixlen 64 scopeid 0x0 inet6 f…

linux怎么修改ens33文件,linux 修改centos7的网卡ens33修改为eth0

Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等,而 CentOS7 提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的,缺点是比 eth0、wlan0 更难读,比如 ens33 。 如果不习惯使用新的命名规则,可以恢复使用传统…

linux网卡ens33,如何解决Linux 系统下 ifconfig 命令无网络接口 ens33

今天我在做Redis的哨兵集群模式的时候&#xff0c;以前都是好的&#xff0c;也不知道从什么时候开始就无法连接Redis服务器了&#xff0c;就是运行如下命令&#xff0c;没有效果&#xff1a;redis-server redis.conf&#xff0c;然后在通过命令查看redis的状态&#xff0c;始终…

centos找不到ens33

输入这行命令进入配置网络地址&#xff0c;却显示是新文件。 解决方法 先进入前面的文件夹cd /etc/sysconfig/network-scripts/ 然后再ls 发现我们的是ens192 cd ifcfg-ens192进入修改 最后 systemctl restart network 再ip add 查看

Ubuntu20.04 设置ens33网卡

简介&#xff1a;记录一下Ubuntu20.04 设置ens33网卡。起因&#xff1a;在虚拟机启动情况下&#xff0c;直接关闭主机。导致重新启动虚拟机后ens33网卡无法生成ip。 1.进入 /etc/netplan/ 目录 2.修改目录下文件 3.执行命令 netplan apply 再重启执行 ifconfig 就能看到 ens3…

ens33网卡IP地址丢掉了

背景 有的时候&#xff0c;vmware创建centos7的虚拟机上开始用的好好的&#xff0c;后来&#xff0c;ens33的ip地址就不见了。 试图启动ens33&#xff0c;发现无法启动 解决办法 chkconfig NetworkManager off chkconfig network on service NetworkManager stop service ne…

CentOS:ens33没有IP地址

CentOS&#xff1a;ens33没有IP地址 1.环境版本 2.问题异常 启动CentOS操作系统后&#xff0c;经过ip a命令&#xff08;或ifconfig&#xff09;查看无IP地址&#xff1a; 3.解决步骤 root角色修改配置文件&#xff1a; # vi /etc/sysconfig/network-scripts/ifcfg-ens33将O…

linux虚拟机ifcfg-ens33网卡配置,静态IP、网关、子网掩码、DNS地址的配置

使用ifconfig命令显示命令找不到&#xff0c;可以yum install net-tools安装。 1、使用ifconfig查找虚拟机现有的网络配置 其中lo是本地网络&#xff0c;ens33是主要配置的网络 2、查找网络配置所需要的资料&#xff1a;ip地址范围、网关、子网掩码、DNS地址 ip地址范围&…

c语言字符串长度,占用字节大小,存放位置等问题

参考文章&#xff1a;https://www.cnblogs.com/xmhsincere/p/4915354.html 1、三者长度strlen问题 int main () {char *str"xiaolong";printf("%d\n",strlen(str));return 0; } 结果&#xff1a; #include <stdio.h> #include <string.h>i…

C语言字符串的长度与字符串内存长度区别

这个问题不难&#xff0c;但是很容易忽略&#xff0c;导致混淆&#xff0c;如下&#xff1a; “AB”这个字符串的长度是多少呢&#xff1f; “AB”这个字符串的所占内存长度是多少&#xff1f; 赋值给字符数组后会不会改变呢&#xff1f; char a[] “AB”; 那么a的字符长度是…

C语言 字符串

1&#xff0c;一维字符数组 &#xff08;1&#xff09;定义 char 数组名 [大小]; &#xff08;2&#xff09;初始化字符数组 char s[7]{h,a,a,p,y} //其余不确定 char s[ ]....... //编译器会计算出数组大小 static char s[7]{h,a,a,p,y} //其余为0 所代表的是字符…

C语言计算字符串长度

C语言计算字符串长度 2022-0105 blog_005 方法一&#xff1a; C语言标准库中有一个函数可以计算字符串长度&#xff0c;strlen()。 方法二&#xff1a; 根据字符串总是以 ‘\0’ 结尾&#xff0c;自定义计算方法。 注意 ‘\0’ 一般是看不见的&#xff0c; ‘\0’ 也不算占用…

如何求C语言字符串长度(strlen函数和sizeof关键字)

如何求C语言字符串长度&#xff08;strlen函数和sizeof关键字&#xff09; 在程序里&#xff0c;一般会用***strlen()***函数或***sizeof()***来获取一个字符串的长度&#xff0c;但这2种方法获取的字符串的长度其实是不一样&#xff0c;我们用如下函数进行测试&#xff1a; …