【JS】数组对象:判断某属性的数据是否重复、去重

一、需求说明

需求1:数组对象中,判断某属性的数据是否重复

需求2:数组对象中,将某属性数据结果重复的对象去除

二、需求分析

可以”将对应属性值去重后的数组长度,与原数组长度做比较“,如果不一致,则说明原数组对应字段中有重复值。

三、解决办法

let dataInfo= [
    { name: "小王", age: 10, aiScore: 123 },
    { name: "小李", age: 14, aiScore: 456 },
    { name: "小马", age: 6, aiScore: 123 },
];

// 原数组长度
let listLength = dataInfo.length;

// 获取aiScore字段去重后的数组长度
let aiArrLen = new Set(dataInfo.map(item => item.aiScore)).size;

// 判断:数组对象中 aiScore字段 是否有重复值
if (listLength > aiArrLen) {
   // 该数组对象aiScore字段,有重复值
}

1、Set() 说明

Set 是 es6 新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。Set本身是一个构造函数,用来生成 Set 数据结构。

2、使用 Set 

new Set() 生成出来的数据是 Set 数据结构,需要自行转换成对应结构。

PS:如上述举列的数组对象,对 aiScore 字段去重后的数组,需要解构获取:

let newArry = [...new Set(dataInfo.map(item => item.aiScore))]

 

 四、参考链接

new Set()的基础用法(ES6)(常用于数组去重)-CSDN博客

数组,数组对象重复值判断,去重,拆分操作_判断数组对象是否重复-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值