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

实现JavaScript中两个数组对象去重与合并的方法 lodash库被广泛用于JavaScript中,用于处理数组、对象、字符串等数据结构。它的优势在于其稳定性和丰富的函数集,这使得开发者可以轻松地实现各种复杂的操作而无需从头编写逻辑。lodash库能够:提高代码的可读性和可维护性。提供的函数都是经过优化和测试的,减少了bug出现的可能。对数据操作提供了一致且简洁的接口。 阅读详情
AI摘要

本文介绍ES6中Set集合的基本概念与操作方法,并演示如何利用Set集合实现数组及数组对象的合并与去重。

这次对数组的操作,我们使用es6的新语法来完成,所以在看下边代码之前,我们要了解我们下边要用到的es6中的set集合,和for...of 方法:

首先介绍set集合:

ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。

注意:

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

Set实例的属性和方法:

Set结构的实例有以下属性。

  • Set.prototype.constructor:构造函数,默认就是Set函数。
  • Set.prototype.size:返回Set实例的成员总数。

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

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值。

Set内部的元素可以用 for...of 遍历。

Array.from()方法可以将Set数据类型转化为数组类型。

for...of 方法:

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

1、数组的合并去重

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集合转化为数组

结果

2、数组对象的合并去重

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( let item1 of json){  //循环json数组对象的内容

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

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

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

	}

	if(flag){ //判断是否重复
		newJson.push(item1); //不重复的放入新数组。  新数组的内容会继续进行上边的循环。
	}
	

}

console.log("newJson",newJson);

结果

大模型的实践应用31-基于通义千问大模型改进台风和海浪预测研究,利用机器学习与通义千问结合的思路实现对台风和海浪预测分析 通义千问大模型是阿里巴巴云推出的一款大规模语言模型,旨在通过强大的自然语言处理能力提供更广泛的服务。从最初的构想到如今的广泛应用,通义千问的发展见证了人工智能领域尤其是自然语言处理技术的巨大进步。自发布以来,通义千问不断迭代升级,不仅在规模上实现了飞跃式的增长,在性能方面也得到了显著提升。本次研究尝试将通义千问强大的自然语言处理能力与经典的时间序列预测算法相结合,旨在提高对未来天气状况预测的精度。具体来说,首先使用通义千问生成高质量的文字描述来增强特征表达力; 阅读详情

相关推荐

nvidia-container-toolkit 国内镜像源安装

nvidia-container-toolkit 国内镜像源安装

湫然的博客 1万+

JS中数组的合并与去重

一、数组(Array)的合并 1.forEach()遍历其中一个数组,将该数组的每一项push到另一个数组中 //遍历合并 let arr1 = [ 1, 2, 3, 4, 5]; let arr2 = [ 7, 8, 9, 4, 5]; arr1.forEach( item => arr2.push(item) ); 2.拓展运算符(ES6的) //拓展运算符 let arr1 = [ 1, 2, 3, 4, 5]; let arr2 = [ 7, 8...

zhengjingID的博客 3万+

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 1万+

js数组合并的8种方法

在JavaScript中,有多种方法可以合并数组。下面是8种常用的方法,包括concat()、spread operator、push()、unshift()、splice()、Array.from()、Array.prototype.reduce()和ES6的Array.prototype.flat()。

一步一个脚印,踏实努力,向着目标前进 5万+

高云FPGA开发实战:手把手教你用ModelSim做功能仿真与时序分析(附Testbench写法)

本文详细介绍了高云FPGA开发中如何使用ModelSim进行功能仿真与时序分析,包括环境搭建、Testbench编写、波形调试和时序优化等实战技巧。通过具体案例和代码示例,帮助开发者掌握FPGA仿真验证的核心方法,提升设计可靠性。特别针对高云GW5A系列器件提供了专业的仿真库配置指南和时序分析策略。

weixin_30412167的博客 467

博途AI助手演示,完成简单且重复的梯形图代码,并导入到博途

自写个博途AI助手,下面演示AI帮我生成完善多个模拟量输入转换的代码,

gsjkwg的博客 1527

js两个数组合并去重

注意:判断是否为对象键时,会自动对传入的键执行‘toString()’,不同的键可能会被误认为是一样的,如:a[1]与a[‘1’]。实现思路:新建一个js对象以及新数组,遍历要去重的数组时,判断值是否是js对象的键。实现思路:如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。个人比较推荐,在面对数组中每一项都是一个对象的时候,一些API是不生效的。缺点:如果数组中的值为undefined,则会剔除,不在新数组中。遍历旧数组,把值加入新建的数组(当新数组中不存在该值时)

浮游的博客 7795

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 846

Javascript 【基础】对象数组去重

直接上代码 //对象数组去重 function arrayReSet(jsonArray) { let json = jsonArray; //两个数组对象合并 let newJson = []; //盛放去重后数据的新数组 console.log(json) for (let i = 0; i < json.length; i++) { //循环json数组对象的内容 let flag = true; //建立标记,判断数据是否重复,true为不重复 for (let

言小溪 的博客 1364

基于深度确定性策略梯度的永磁同步电机强化学习控制方法

本文提出了一种基于深度确定性策略梯度(DDPG)的永磁同步电机(PMSM)电流内环智能控制方法。首先建立了PMSM在d-q坐标系下的数学模型,分析了传统矢量控制双闭环系统中PI控制器的局限性。针对电流内环控制问题,设计了包含电流跟踪误差、转速信息和历史控制量的状态空间,将电压输出作为动作空间,并构建了兼顾跟踪精度和响应速度的奖励函数。通过DDPG算法训练智能体,使其能够自适应调整控制策略。仿真结果表明,与固定参数的PI控制器相比,DDPG控制器在动态响应速度和抗干扰能力方面具有明显优势,为PMSM高性能控制

huanghm88的专栏 104

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2526

如何用js实现数组合并?要求消除重复元素

在上述代码中,我们使用展开运算符将多个数组展开为单独的元素。然后,我们通过使用Set数据结构,它会自动去除重复的元素。最后,我们再次使用展开运算符将Set对象转换为数组,从而得到合并后且没有重复元素的数组。要在JavaScript中合并多个数组并消除重复元素,可以使用Set数据结构和展开运算符来实现。

金木AI 1065

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

js 对象覆盖合并, 一维数组、二维数组(某个属性或者根据二维数组几个值,去重)去重方法

对象合并 const basicConfig = { width: 800, height:600, webPreferences: { nodeIntegration: true, // 可以使用node语法 }, }; const config = { width: 300, height:300, webPref...

唯一的切慕,唯一的诗歌…… 2396

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

此次对数组的操做,咱们使用es6的新语法来完成,因此在看下边代码以前,咱们要了解咱们下边要用到的es6中的set集合,和for...of 方法:javascript首先介绍set集合:ES6提供了新的数据结构Set,它相似于数组,可是成员的值都是惟一的,没有重复的值。javaSet函数能够接受一个数组(或相似数组的对象)做为参数,用来初始化。es6注意:算法向set加入值的时候,不会发生类型转变,...

weixin_42466868的博客 653

js 数组对象合并去重(简洁)

【代码】js 数组对象合并去重(简洁)

qq_58307541的博客 368

【前端】jQuery数组合并去重方法总结

jQuery数组合并去重方法总结

姜太小白的博客 500

js数组对象去重的方法,相同的数据并合并在一起

从数据可以看出来,id为1的数据有两个,type也相等,把他组合在一起得到。需求:一个数组对象,里面有重复的数据,需要合并在一起。使用reduce累加的方式。

lylengleng的博客 343

js数组里面的重复对象的去重,合并不同的属性的处理方法

重复数组的过滤去重,并且合并不同的属性,比较抽象!具体的看下面的数据格式 var arr = [ { data: [ { xh: '1', name: '张三', value: '1360', postion: [{ d: '上海' }] }, { xh: '2', name: '李四', value: '1120', postion: [{ d: '广州' }] } ] },

峰会路转的博客 553

数组深拷贝、对象的深拷贝、数组去重

一、数组深拷贝方法 1、for 循环实现数组的深拷贝 var arr = [1,2,3,4,5,6]; var arr2 = copyArr(arr ); function copyArr(arr ){ var res = []; for(var i=0 ; i&lt;arr.length;i++){ res .push(arr[i]) } } 2、slice 方法实现数组的深...

qq_32825915的博客 670

JS 两个数组(对象)去重合并

1、数组的合并去重: <script> 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集合转化为数组 </script> 2.

前端菜菜DayDayUp的博客 1万+

关于js你肯定会用到的数组相关处理方法(数组合并,数组之间匹配,数组对象分类,去重等)

对于数组的相关复杂处理方法

sherlock_l的博客 338

合并操作 对象和数组

lable: "承包商",// 数组元素中新增 属性和值。// 合并操作 对象和数组。

qq_35232643的博客 104

js对象数组合并、去重、删除部分元素(concat()、reduce()、filter()、every()方法的使用)

需求1:将左边选中的某些设备添加到右边,已有的不重复添加。两边都是对象数组,刚开始想的原始的2重for循环遍历,效率比较低。后来想到将左边选中一律合并到右边的数组中,然后对右边的数组去重。这里要用到两个方法:concat()和reduce()。将一个数组合并到另一个数组中。如果使用push(),添加的是整个数组而不是数组的元素。如let a = ['a']; let b =[ 'b']。如果a.p...

qingmengwuhen1的博客 1万+

JS实现JSON数组合并和去重

数组合并用的是concat方法,它可以用于字符串之间的连接和数组之间的连接; JSON数组去重利用对象的属性名不可重的特性来做判断,然后得到新的数组,就是去重后的数组;

自酌一杯酒 9515

[javascript] js数组对象去重或合并数组对象中的指定值

1、js数组对象去重复并合并数值 <script> var arrs = [ {"id": "1","name": "张三","value": "1245"}, {"id": "1","name": "张三","value": "1360"}, {"id": "2","name": "李四","value": "1120"}, {"id": "2","name": "李四","value": "1362"}, {"id": "2","name": "李四","value.

qq_34450741的博客 1216
上一篇: rem布局实现不同分辨率移动终端的自适应、整体缩放
下一篇: 【CSS】静态螺纹进度条和静态流程布局
NAMECZ
博客等级 码龄9年 175粉丝 64原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值