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

那么简易的使用ES6进行对象数组去重呢?

const filterDuplicate = (arr: any) => {let res = new Map();return arr.filter((a: any) => !res.has(a.id) && res.set(a.id, 1));
}
const filterDuplicate = (arr: any) => {let map = new Map();arr.forEach((item: any, index: number) => {if (!map.has(item['id'])) {map.set(item['id'], item)}})return [...map.values()]}

以上两种方案均可。第二种稍微比较容易理解一点。new Map创建的其实它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。如果Map的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map将其视为一个键,包括0和-0。另外,虽然NaN不严格相等于自身,但Map将其视为同一个键。

使用ES6进行对象数组去重相关推荐

  1. JS数组对象去重,ES6最简数组去重

    JS数组对象去重,ES6最简数组去重 // 测试数据 // 比如我们处理 value 的去重 var arrList = [{key: 1, value: "aaa"},{key: ...

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

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

  3. 两个对象数组去重的3种方法

    两个对象数组去重的3种方法 前言 问题描述 解决方案一 解决方案二 解决方案三 前言 前段时间写过JavaScript数组去重最简单的 4 种方案,里面的数组元素是基本类型.本文要讲的数组元素是对象, ...

  4. 分享6个对象数组去重的方法

    大家好,关于对象数组去重的业务场景,想必大家都遇到过类似的需求吧,针对这样的需求,你是怎么做的呢. 下面我就先和大家讨论下基于对象的某个属性如何去重. 方法一:使用 .filter() 和 .find ...

  5. vue 对象数组去重

    vue 对象数组去重 1.利用set去重 其实很简单,一般的数组去重可以直接用 new Set() 方法即可,但是数组对象的话,比较复杂,不能直接用,我们可以采取间接的方法来去重 对象去重 uniqu ...

  6. JS对象数组去重简单有效方法

    I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...

  7. 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 ...

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

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

  9. JSON对象数组去重

    第一种:通过判断数组中当前元素的下标与该元素第一次出现在数组中的下标是否一致来进行数组去重 let arr = [{id: 1,name: '第一'},{id: 2,name: '第二'},{id: ...

最新文章

  1. 安装JDK1.8+环境配置
  2. pycharm安装scrapy失败_运行Scrapy程序时出现No module named win32api问题的解决思路和方法...
  3. java 跳转action_JS 跳转到指定Action | 学步园
  4. 据说有人面试栽在了Thread类的stop()方法和interrupt()方法上
  5. 面空间数据中网格索引和四叉树索引的结合及优化的一种方案
  6. dorado7时间格式调整
  7. 简易的机器人聊天_如何制作一个简单的聊天机器人
  8. 宽带光纤接入网的概念和典型应用类型
  9. 姜小白的Python日记Day8 字符串编码转换与函数简介
  10. 工具分享:ideaIU-2019.2.4_windows正版最新(附下载链接)
  11. teamviewer14 去商用途提示
  12. 书单素材怎么找?教你寻找方法
  13. 36篇精品文章搞定所有TOEIC单词
  14. Qtcreator远程调试arm开发板程序指南
  15. Chromedriver适用谷歌浏览器的各个版本
  16. 风丘科技为您提供车载以太网解决方案
  17. 栈溢出利用SEH异常处理
  18. Android Context 归因标记
  19. 网络协议 -- UDP协议(3)广播
  20. 【转载】Amit’s A star Page 中译文

热门文章

  1. 【论文阅读笔记】Occlusion-Aware Siamese Network for Human Pose Estimation
  2. nvidia显卡旧版驱动下载地址
  3. 学生平板电脑动漫词汇
  4. 【笔记】【git】【狂神说Java】Git最新教程通俗易懂 -学习笔记
  5. 拍摄或者录制视频遇到断电死机该怎么办
  6. 西安尚学堂练习09.06|Java编程笔试面试题
  7. maxIdle和maxIdle和maxWait
  8. C++——判断字符类型
  9. [python + opencv]根据图像创建视频
  10. html5plus (H5 WebApp)