在实际的项目当中不可避免的会遇到数组里面元素重复情况,下面将介绍几种ES6数组去重的方法:

1、使用Set去重

const arr = ['张三','张三','三张三']
let set = new Set(arr); // set 自带去重
// Set { '张三', '三张三' }
console.log(set);
console.error(Array.from(set)); // [ '张三', '三张三' ]

2、使用reduce去重

let person = [{id: 0, name: "小明"},{id: 1, name: "小张"},{id: 2, name: "小李"},{id: 3, name: "小孙"},{id: 1, name: "小周"},{id: 2, name: "小陈"},
];let obj = {};let peon = person.reduce((cur,next) => {obj[next.id] ? "" : obj[next.id] = true && cur.push(next);return cur;
},[]) //设置cur默认类型为数组,并且初始值为空的数组
console.log(peon);
// (4) [{…}, {…}, {…}, {…}]0: {id: 0, name: "小明"}1: {id: 1, name: "小张"}2: {id: 2, name: "小李"}3: {id: 3, name: "小孙"}length: 4__proto__: Array(0)

3、使用reduceRight去重,颠倒数组顺序

let hash = {};
let config = [{name: 2,state: true,output: 'Y',
}, {name: 3,state: true,output: 'A',
}, {name: 5,state: true,output: 'S',
}, {name: 7,state: true,output: 'B',
}];config = [...config, {name: 3,state: false,output: 'A',
}]
const newArr = config.reduceRight((item, next) => {hash[next.name] ? '' : hash[next.name] = true && item.push(next);return item
}, []);
console.log(JSON.stringify(newArr));// [{"name":3,"state":false,"output":"A"},{"name":7,"state":true,"output":"B"},{"name":5,"state":true,"output":"S"},{"name":2,"state":true,"output":"Y"}]

ES6 数组内对象去重相关推荐

  1. 【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践

    es6数组中对象去重 方法一: filter()与findIndex()给数组去重 1. filter()用法 2. findIndex()用法 3. 去重实战 方法二:reduce()去重 1. r ...

  2. js中给数组中对象去重

    被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...

  3. ES6 数组、对象的扩展

    8. 数组的扩展 扩展运算符(...),将一个数组转为用逗号分隔的参数序列. 复制数组 const a2=[...a1] 合并数组 [...arr1, ...arr2, ...arr3]; arr1. ...

  4. 数组里面对象去重的4种方法

    去重数据: (1)利用对象访问属性的方法,判断对象中是否存在key var result = [];     var obj = {};     for (var i = 0; i < arr. ...

  5. ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据

    今天遇到一个问题.后端请求回来是[{id:'12',name:'tom'},{id:'13',name:'marry'}]. 百度的方法: 转换方法:1.利用fromEntries()和map()函数 ...

  6. vue数组去重 数组对象去重

    常见普通数组去重 利用Es6 Set去重 unique(arr){return Array.from(new Set(arr))}, 利用filter unique(arr){return arr.f ...

  7. javascript数组对象去重

    数组对象去重 数组对象就是数组里的每一项都是一个对象,例: //需要去重的数组对象(每个对象都有唯一标识) oldArr = [{ id: 01, name: "John" },{ ...

  8. ES6数组去重的常用方法

    普通数组去重 数据源 const test = ['q', 'w', 'e', 'q', 'u', 'p'] 方法一 [...newSet(test)]; 方法二 Array.from(new Set ...

  9. es6数组去重(连重复的对象也可以去掉)

    1,去除简单类型 //ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, ...

最新文章

  1. AI一分钟 | 教育部公布高中新课标,编程、算法思维成必修内容;李彦宏否认百度会“All in AI”
  2. java rootpath_Java 获取webapp,Root,classpath,项目等路径工具类
  3. php根据修改时间删除指定目录下文件
  4. 【机器学习】什么是机器学习?(上)
  5. CTFshow——Pwn(1)
  6. subtext blog装好了,老外的文档还是写的有些问题
  7. 加密狗Android软件,加密狗app
  8. 计算机备份u盘,如何把电脑系统备份到u盘_怎么备份系统到u盘-win7之家
  9. PHP月考---给自己建个错题本
  10. 【ARM 嵌入式 C 入门及渐进 3 -- GCC __attribute__ 使用】
  11. 使用智遥工作流,优化SAP请购流程
  12. 删除文件夹遇到的 错误ox80070091:目录不是空的错误解决
  13. 什么是语法糖(Syntactic sugar)?
  14. 自定义注解(中英文字段名字映射)
  15. 基于ABP实现DDD
  16. WIN10 USB 代码19 无法识别USB
  17. 大数据技术系列(1)
  18. PowerMock简介及常见注解解释
  19. 操作系统内存管理_MBT_LRU
  20. python飞机大战功能模块图_基于Python的飞机大战游戏设计

热门文章

  1. 弹性盒子进阶2-对齐方式
  2. 9.针对Linux的8种最佳免费防病毒程序
  3. 上周热点回顾(2.10-2.16)
  4. echarts 开发股票净值走势图记录
  5. 操作记录表怎么设计_驻马店钢结构楼梯设计公司
  6. android手机短信拦截的实现
  7. 计算机网络教程与实践应用答案,计算机网络技术与应用教程答案.docx
  8. 基于java婚纱摄影租赁网站
  9. 说了那么多,到底什么是「神经搜索」?
  10. HTML5+plus 移动文件夹或文件(必会!!)