项目前台代码中需要用到数组的去重操作,其实也不难,就算是对象数组,判断下对应的属性值也是可以实现的,但是如果我实现的话肯定是最常见的双重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 两个数组(对象)去重合并相关推荐

  1. android两个数组对象去重合并,JS 两个对象数组合并并去重

    JS两个对象数组合并并去重 let jsonArr = [ { "ID": "", "NO": "1", "N ...

  2. html数组删除指定元素,js怎么删除数组中指定元素?

    js中删除数组中指定元素的方法:首先通过循环遍历该数组得到指定元素的索引值,然后根据索引值使用splice()方法即可删除元素,语法"array.splice(索引值,1)". J ...

  3. php 对象字面量,js的字面量对象和JSON的区别

    用PHP视角来看,JSON就是PHP里的关联数组,就是键值对. echo json_encode(array( 'A', 'B' )); // ["A","B" ...

  4. js二进制流转Blob对象。Blob对象再转File对象

    JavaScript 二进制转文件 使用js将blob对象转file对象 前端处理后端返回的二进制流文件 js中Blob对象一般用法 js中关于Blob对象的介绍与使用 上传的文件对象 完整代码实例 ...

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

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

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

     1.数组对象的合并去重 方法一.推荐使用 1).封装 /**数组对象去重*/ export function removedup(arr, batch) {if (!Array.isArray(ar ...

  7. 【js两个数组对象根据属性相同的值合并】

    js两个数组对象根据属性相同的值合并 数组对象 合并方法 数组对象 const a=[{uid: 1,name: '黄鹤楼'},{uid: 2,name: '鹳雀楼'},{uid: 3,name: ' ...

  8. js 两个数组对象合并

    let data2 = [{"value": "1","title": "瓦罐汤"}, {"value&quo ...

  9. java json 去重_js操作两个json数组合并、去重,以及删除某一项元素

    两个json数组合并去重,以及删除某一项元素 let ha = [ {id:'H',name:'3'}, {id:'A',name:'6'}, {id:'B',name:'14'}, {id:'C', ...

最新文章

  1. 黑客带来了病毒攻击软件还是文化?
  2. 苹果企业证书_企业签名App稳定吗?
  3. iis应用程序池不能启动
  4. Windows平台下搭建自己的Git服务器
  5. 备忘:SharePoint默认的欢迎WebPart中超链接样式
  6. 脚本加密http://www.datsi.fi.upm.es/~frosal/sources/
  7. javascript 商务通
  8. Luogu3941[湖南集训2017] 入阵曲
  9. 大数据毕设/课设 - 基于大数据的可视化分析模板
  10. WIN7系统开启无线路由共享上网功能
  11. openwrt USB热插拔(hotplug)
  12. JVM——GC算法原理
  13. 公司内网openvpn部署,
  14. 图像修复必读的10篇论文
  15. Markdown教程笔记(含印象笔记语法)
  16. selenium破解滑块验证码自动查询+获取后续表单数据
  17. Java+JVM+MySQL+数据结构与算法,一文说清!
  18. Flutter factory关键字
  19. 【ESP32_8266_WiFi (十二)】ESP8266客户端HTTP API应用实例
  20. 恒大打响谣言“反击战”

热门文章

  1. SQL语句排序的记录顺序号
  2. 不会用github?全中文CSDN代码托管平台值得你拥有!手把手教你学会使用!!
  3. 集装箱船受压,中国货源网没有达到预期
  4. 新:头文件 youxi.h
  5. 河北欧格教育:怎么做好主图
  6. rq 消息队列(python)
  7. JAVA的八种基本类型
  8. 牛牛的mex(思维-前后缀最小值)
  9. java 父类引用子类对象_java多态,如何理解父类引用指向子类对象
  10. Ubuntu查看显卡型号 nvidia-smi