在当今这个前端代码时代,前端需要对数据处理的逻辑需求越来越多,也越来越复杂了;所以我在项目种总结了一些对去重的几种方式提供给到大家参考!

之前我是对数组去重是这样的,当然现在也没有被淘汰,还是可以用的只是代码看着有点l

demo:

  let array = ['amy','jack','tom','jackson','mark','jack'];

1:一维数组去重

beFore:
之前都是使用 indexOf, includes,

 var newArr = []for (var i = 0; i < array .length; i++) {if (newArr.indexOf(array [i])===-1) {newArr.push(array [i])}
console.log(newArr)

Now: 使用es6:

var newArrStr = new Set(arr); //通过set集合去重;
//得到是字符串var newArr =Array.from(new Set(newArrStr));//数组

如何有多个数组只需将合并在去重即可

 var mergeArr= arr1.concat(arr2);

2 .JSON数组去重;

demo

  var obj1 = [{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"},{"id": 0, "name": "林在范2"},];var obj2 = [{"id": 2, "name": "林在范"},{"id": 3,"name": "朴珍荣"},{ "id": 4,"name":"崔荣宰"},{ "id": 5,"name":"崔荣宰"},{ "id": 6,"name":"金有谦"}];

合并:

 var mergeObj= obj1 .concat(obj2 );

beFore:
在之前没有使用es6是这样的:

var new_arr=[];
var json_arr=[];
for(var i=0; i<obj2.length; i++){console.log(new_arr.indexOf(obj2[i][attribute]));if(new_arr.indexOf(obj2[i]['id']) ==-1){ new_arr.push(obj2[i]['id']);  json_arr.push(obj2[i]);} else{}
}console.log(json_arr);

你看看代码,十几行了;多L;咱们来看看 es6的强大;

Now: 使用es6:

2.1: filter&& forEach

//这种应用于添加数据业务需求


let newEs6Json =[];
obj2.forEach(item => {newEs6Json= obj1.filter(a  =>  a.spu != item.spu) })console.log(newEs6Json );// [{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"}]

2.2 reduce

 // let  obj3= obj1 .concat(obj2 );let new_obj ={};let peon =obj3.reduce((cur,next) => {obj[next.spu] ? "" : obj[next.spu] = true && cur.push(next);return cur;},[])console.log(peon);//[{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"},{"id": 2, "name": "林在范"},{"id": 3,"name": "朴珍荣"},{ "id": 4,"name":"崔荣宰"},{ "id": 5,"name":"崔荣宰"},{ "id": 6,"name":"金有谦"}];

去重还是有很多种其他的方式的;我只能总结这么几个供大家参考了哈;

使用es6--对象数组的多种去重方式相关推荐

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

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

  2. es6对象数组按指定指定属性数组排序

    let arr = let a = [ {name:"dema", id:'23-ba'}, {name:"xiya", id:'44-ba'}, {name: ...

  3. 关于js的多种去重方法

    js的多种去重方式(包括ES5.ES6去重) 在JavaScript中,我们可以在很多场景下使用到去重功能,比如说在数组中,去掉数组中重复的数据,这是最常见的.以下是实现JavaScript数组去重的 ...

  4. es6 使用filter给对象数组去重

    一般的去重方式 var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7,8,8,0,8,6,3,4,56,2]; var arr2 = arr.filter((x, index ...

  5. 使用ES6进行对象数组去重

    之前使用new Set数组去重,只可以去重简单字符数组,或者数字数组等.Array.from(new Set(arr))即可.但是这种方案针对对象数组并不适用. 那么简易的使用ES6进行对象数组去重呢 ...

  6. 【ES6】最简单的对象数组去重的方法

    对象数组去重的方法 // arr传数组名,attr传属性名 const uniqueArr=(arr,attr)=> {const res = new Map();return arr.filt ...

  7. JS遍历数组的多种方式

    JS遍历数组的多种方式 1. 普通for循环 for (let i = 0; i < arr.length; i++){//code} 应用最为普遍的循环写法,性能好,可读性好. 2. 优化版f ...

  8. js 去重某个键值 数组对象_js数组去重(包括对象数组去重)

    2019.08.02补: 对象数组建议直接循环然后使用工具库(lodash)的深比较,评论里也有指出,文章的方法有些取巧了 生产环境不要这么玩~. 方法一:利用ES6的Array.from()/扩展运 ...

  9. es6 提取数组对象一部分_ES6新特性你了解了多少呢?

    ES6新特性 ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以ES6中的特性比较多. 在这里列举几个常用的: 类 ...

最新文章

  1. redis-sentinel主从复制高可用
  2. Visual Studio 2010 将网站直接发布到远程站点
  3. MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁)
  4. ArrayList类contains方法实现原理
  5. session存储的替代方法redis
  6. harbor搭建与使用
  7. 谷粒商城集群篇爬坑笔记--Gitee拉取项目报错、项目target文件不存在(部分项目不全)、SonarQube报错
  8. spring-session实现分布式集群session的共享(转)
  9. python量化投资实训班_python股票量化班 - 优量在线 - 学量化投资,到优量在线 - Powered By EduSoho...
  10. hadoop学习博客
  11. 事实表和维度表的定义
  12. 拉格朗日插值的优缺点_如何直观地理解拉格朗日插值法?
  13. 手写Vue个人组件库——fl-Badge
  14. 快速实现微信公众号支付功能
  15. Apple ASA归因技术支持
  16. 蓝牙4.0和3.0区别
  17. 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
  18. Flowable入门系列文章47 - 电子邮件任务
  19. 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现
  20. 天猫精灵X1自动恢复出厂设置解决方法

热门文章

  1. 从零开始使用composer开发php项目解决各种包调用
  2. 活久见系列:关于袁老的事情,还是说两句吧
  3. 排序算法的稳定性及其汇总
  4. 湖仓一体(Lakehouse)是什么?
  5. DHCP动态分配ip地址
  6. 《超新星纪元》阅读笔记
  7. OEM的意思是什么?(收藏)
  8. 史蒂文斯理工学院计算机科学,史蒂文斯理工学院
  9. FPGA图像处理HLS实现sobel边沿检测,提供HLS工程和vivado工程源码
  10. python3 cv2 一起来找茬