android两个数组对象去重合并,js 两个数组(对象)去重合并
项目前台代码中需要用到数组的去重操作,其实也不难,就算是对象数组,判断下对应的属性值也是可以实现的,但是如果我实现的话肯定是最常见的双重for循环,加个flag标记,老套的不能行了,想了想,还是上网找点高级点的操作吧。下面几个方法都是网上找的,链接如下:
https://blog.csdn.net/NAMECZ/article/details/82220534
https://blog.csdn.net/u012830533/article/details/73551104
js去重方法有很多,最常用也是最基本的如下:(这个我没试过,估计没啥问题,最基础的)
在ES 6中则能更简便的实现:
如若要将多个数组合并且去重排序,则需要使用add()方法插入新数据并使用sort()方法排序,具体如下:
因为我这边操作的是对象,所以上面的我都没测,下面的测试过了,可以实现。
这次对数组的操作,我们使用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(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);
项目起不来了,暂时不截console的图了。
这里面可以实现去重,如果是要将两个数组中的重复数据剔除,只留下唯一数据的话,就不需要合并数组,两个for循环,依次遍历两个数组即可。
android两个数组对象去重合并,js 两个数组(对象)去重合并相关推荐
- android两个数组对象去重合并,JS 两个对象数组合并并去重
JS两个对象数组合并并去重 let jsonArr = [ { "ID": "", "NO": "1", "N ...
- html数组删除指定元素,js怎么删除数组中指定元素?
js中删除数组中指定元素的方法:首先通过循环遍历该数组得到指定元素的索引值,然后根据索引值使用splice()方法即可删除元素,语法"array.splice(索引值,1)". J ...
- php 对象字面量,js的字面量对象和JSON的区别
用PHP视角来看,JSON就是PHP里的关联数组,就是键值对. echo json_encode(array( 'A', 'B' )); // ["A","B" ...
- js二进制流转Blob对象。Blob对象再转File对象
JavaScript 二进制转文件 使用js将blob对象转file对象 前端处理后端返回的二进制流文件 js中Blob对象一般用法 js中关于Blob对象的介绍与使用 上传的文件对象 完整代码实例 ...
- android两个数组对象去重合并,JS 数组,数组对象的合并去重方法
此次对数组的操做,咱们使用es6的新语法来完成,因此在看下边代码以前,咱们要了解咱们下边要用到的es6中的set集合,和for...of 方法:javascript 首先介绍set集合: ES6提供了 ...
- JS 两个数组(对象)去重合并
1.数组对象的合并去重 方法一.推荐使用 1).封装 /**数组对象去重*/ export function removedup(arr, batch) {if (!Array.isArray(ar ...
- 【js两个数组对象根据属性相同的值合并】
js两个数组对象根据属性相同的值合并 数组对象 合并方法 数组对象 const a=[{uid: 1,name: '黄鹤楼'},{uid: 2,name: '鹳雀楼'},{uid: 3,name: ' ...
- js 两个数组对象合并
let data2 = [{"value": "1","title": "瓦罐汤"}, {"value&quo ...
- java json 去重_js操作两个json数组合并、去重,以及删除某一项元素
两个json数组合并去重,以及删除某一项元素 let ha = [ {id:'H',name:'3'}, {id:'A',name:'6'}, {id:'B',name:'14'}, {id:'C', ...
最新文章
- 黑客带来了病毒攻击软件还是文化?
- 苹果企业证书_企业签名App稳定吗?
- iis应用程序池不能启动
- Windows平台下搭建自己的Git服务器
- 备忘:SharePoint默认的欢迎WebPart中超链接样式
- 脚本加密http://www.datsi.fi.upm.es/~frosal/sources/
- javascript 商务通
- Luogu3941[湖南集训2017] 入阵曲
- 大数据毕设/课设 - 基于大数据的可视化分析模板
- WIN7系统开启无线路由共享上网功能
- openwrt USB热插拔(hotplug)
- JVM——GC算法原理
- 公司内网openvpn部署,
- 图像修复必读的10篇论文
- Markdown教程笔记(含印象笔记语法)
- selenium破解滑块验证码自动查询+获取后续表单数据
- Java+JVM+MySQL+数据结构与算法,一文说清!
- Flutter factory关键字
- 【ESP32_8266_WiFi (十二)】ESP8266客户端HTTP API应用实例
- 恒大打响谣言“反击战”