android两个数组对象去重合并,JS 数组,数组对象的合并去重方法

本文介绍了如何利用ES6的Set数据结构和for...of循环来实现数组的合并与去重操作。首先讲解了Set集合的特点,包括其唯一性、初始化方法以及内部判断值相等的逻辑。接着通过示例展示了如何通过Set来合并并去重两个数值数组,最后演示了处理包含对象的数组去重的方法,通过双重循环检查新数组中是否存在相同的id,确保新数组不包含重复对象。这种方法对于处理含有复杂数据结构的数组合并去重问题十分有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此次对数组的操做,咱们使用es6的新语法来完成,因此在看下边代码以前,咱们要了解咱们下边要用到的es6中的set集合,和for...of 方法:javascript

首先介绍set集合:

ES6提供了新的数据结构Set,它相似于数组,可是成员的值都是惟一的,没有重复的值。java

Set函数能够接受一个数组(或相似数组的对象)做为参数,用来初始化。es6

注意:算法

向set加入值的时候,不会发生类型转变,因此 5 和 '5' 是两个不一样的值。Set内部判断两个值是否相同,用的是相似于 "==="的算法,可是区别是,在set内部认为NaN 等于 NaN ; json

Set实例的属性和方法:数组

Set结构的实例有如下属性。数据结构

Set.prototype.constructor:构造函数,默认就是Set函数。

Set.prototype.size:返回Set实例的成员总数。

Set实例的方法分为两大类:操做方法(用于操做数据)和遍历方法(用于遍历成员)。下面先介绍四个操做方法。函数

add(value):添加某个值,返回Set结构自己。

delete(value):删除某个值,返回一个布尔值,表示删除是否成功。

has(value):返回一个布尔值,表示该值是否为Set的成员。

clear():清除全部成员,没有返回值。

Set内部的元素能够用 for...of 遍历。prototype

Array.from()方法能够将Set数据类型转化为数组类型。code

for...of 方法:

通俗一点的讲,就是遍历的是数组的元素值,须要深刻了解的同窗,请自行百度,这里就不赘述。

一、数组的合并去重

let arr1 = [3,5,2,3,6];

let arr2 = [5,2,4,6,8,7,9,2];

let arr = arr1.concat(arr2); //合并数组

let arrNew= new Set(arr); //经过set集合去重

console.log("arrNew",Array.from(arrNew)); //将set集合转化为数组

结果

a98328b87f4c48d3b44670f231eaa59a.gif

二、数组对象的合并去重

let json1=[

{id:1,name:"aaa"},

{id:2,name:"bbb"},

{id:3,name:"ccc"},

]

let json2=[

{id:1,name:"aaa"},

{id:2,name:"bbb"},

{id:4,name:"ddd"},

]

let json = json1.concat(json2); //两个数组对象合并

let newJson = []; //盛放去重后数据的新数组

for(item1 of json){ //循环json数组对象的内容

let flag = true; //创建标记,判断数据是否重复,true为不重复

for(item2 of newJson){ //循环新数组的内容

if(item1.id==item2.id){ //让json数组对象的内容与新数组的内容做比较,相同的话,改变标记为false

flag = false;

}

}

if(flag){ //判断是否重复

newJson.push(item1); //不重复的放入新数组。 新数组的内容会继续进行上边的循环。

}

}

console.log("newJson",newJson);

结果

a98328b87f4c48d3b44670f231eaa59a.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值