在实际的项目当中不可避免的会遇到数组里面元素重复情况,下面将介绍几种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. MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
  2. 我心中的核心组件(可插拔的AOP)~分布式Session组件
  3. 文件上传命令rz和下载命令sz的安装
  4. StickyListHeaders的使用
  5. 程序员:我们都在为错误买单!
  6. C语言C++,dirent自创ddir结构体,实现更便捷的文件夹操作
  7. ubuntu下使用锐捷
  8. linux复制文件的命令是什么?
  9. CleanMyMac X试用版与正式版区别
  10. 微信小程序从零开始开发步骤(三)
  11. 浅谈大数据平台架构设计
  12. php 微信获取门店列表,【转载】微信公众号获取用户地理位置并列出附近的门店...
  13. 【java】String.split方法limit详解
  14. 张洪斌 html css,网页设计与制作张洪斌 刘万辉体设计.doc
  15. 程序员必备技能之约会倍增术
  16. Linux修改主机名必须要重启的问题
  17. 探寻企业app开发的特色功能和技术特点
  18. 【合集】智能优化算法与神经网络预测、分类及时间序列优化程序总结
  19. Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: TLS_ECDHE_ECDSA_WITH_CHACHA
  20. 一、MySql服务器

热门文章

  1. android系统旋转方向定制问题
  2. [招聘]杭州某软件公司招聘JSP开发人员
  3. 密码学之常见加密方式(05)
  4. fastjson之——@JSONField
  5. 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→TIM→PWM
  6. 应用程序池20分钟不工作后自动关闭
  7. Android完整开源项目和学习
  8. 小米笔记本pro蓝屏记录
  9. 网络IO模型(一):阻塞IO与非阻塞IO
  10. 螺旋矩阵java_Java 实现螺旋矩阵的方法