ES6 数组内对象去重
在实际的项目当中不可避免的会遇到数组里面元素重复情况,下面将介绍几种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 数组内对象去重相关推荐
- 【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践
es6数组中对象去重 方法一: filter()与findIndex()给数组去重 1. filter()用法 2. findIndex()用法 3. 去重实战 方法二:reduce()去重 1. r ...
- js中给数组中对象去重
被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...
- ES6 数组、对象的扩展
8. 数组的扩展 扩展运算符(...),将一个数组转为用逗号分隔的参数序列. 复制数组 const a2=[...a1] 合并数组 [...arr1, ...arr2, ...arr3]; arr1. ...
- 数组里面对象去重的4种方法
去重数据: (1)利用对象访问属性的方法,判断对象中是否存在key var result = []; var obj = {}; for (var i = 0; i < arr. ...
- ES6 数组转为对象 ,以及 find 在数组里面找到对应一条数据
今天遇到一个问题.后端请求回来是[{id:'12',name:'tom'},{id:'13',name:'marry'}]. 百度的方法: 转换方法:1.利用fromEntries()和map()函数 ...
- vue数组去重 数组对象去重
常见普通数组去重 利用Es6 Set去重 unique(arr){return Array.from(new Set(arr))}, 利用filter unique(arr){return arr.f ...
- javascript数组对象去重
数组对象去重 数组对象就是数组里的每一项都是一个对象,例: //需要去重的数组对象(每个对象都有唯一标识) oldArr = [{ id: 01, name: "John" },{ ...
- ES6数组去重的常用方法
普通数组去重 数据源 const test = ['q', 'w', 'e', 'q', 'u', 'p'] 方法一 [...newSet(test)]; 方法二 Array.from(new Set ...
- es6数组去重(连重复的对象也可以去掉)
1,去除简单类型 //ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, ...
最新文章
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- 我心中的核心组件(可插拔的AOP)~分布式Session组件
- 文件上传命令rz和下载命令sz的安装
- StickyListHeaders的使用
- 程序员:我们都在为错误买单!
- C语言C++,dirent自创ddir结构体,实现更便捷的文件夹操作
- ubuntu下使用锐捷
- linux复制文件的命令是什么?
- CleanMyMac X试用版与正式版区别
- 微信小程序从零开始开发步骤(三)
- 浅谈大数据平台架构设计
- php 微信获取门店列表,【转载】微信公众号获取用户地理位置并列出附近的门店...
- 【java】String.split方法limit详解
- 张洪斌 html css,网页设计与制作张洪斌 刘万辉体设计.doc
- 程序员必备技能之约会倍增术
- Linux修改主机名必须要重启的问题
- 探寻企业app开发的特色功能和技术特点
- 【合集】智能优化算法与神经网络预测、分类及时间序列优化程序总结
- Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: TLS_ECDHE_ECDSA_WITH_CHACHA
- 一、MySql服务器