es6通过Map对象对数组去重
关于js数组去重的方法有很多,我以前居然用的是嵌套两层for循环来加一层if来判断数组里面的重复数据,当我了解了es的方法之后,才发现我的方法是有多蠢(笑哭)。
首先关于数组去重我们先简单介绍一下es6新增的一个Map对象。
Map对象
Map是一组键值对的结构,具有极快的查找速度,我们通过键名就可以快速找到值。
Map对象的常用方法
const res=new Map()//通过set方法来设置键值对存储数据res.set("a",1)res.set("a",2)//这样子会覆盖上面的值//通过get方法来根据键名获取对应的值res.get("a")//输出2//通过has方法来判断是否存在键名res.has("a")//输出trueres.has("b")//输出false,没有设置过键名为b的数据
我们采用Map对象来对数组去重要用到set和has方法
通过filter和Map来对数组进行去重
const map=new Map();const arry=[1,2,1,"1","2","1"];let res= arry.filter(item=>!map.has(item)&&map.set(item,1))console.log(res);
这样就可以达到数组去重的效果
es6通过Map对象对数组去重相关推荐
- javascript ES6有趣的Set,数组去重、并集、交集、差集
Set 对象存储的值总是唯一的 Set 对象方法 方法 描述 add 添加某个值,返回Set对象本身. clear 删除所有的键/值对,没有返回值. delete 删除某个键,返回true.如果删除失 ...
- js 去重某个键值 数组对象_JS数组去重常见方法分析
数组去重是开发中经常会遇到的问题,也是面试时经常会考到的.JS实现数组去重可以有多种方法: 一.简单的去重方法 用一个类比来简单解释一下这种去重方法的思路:A篮子里有若干个不同颜色和大小的球,旁边放一 ...
- ES6使用Set方法进行数组去重
在ES6中可以使用Set方法进行数组去重: let arr = [1,1,1,2,2,3,3,3,4,4]let set = new Set(arr)console.log(set); 输出结果:Se ...
- JS案例——找出两个数组中的不同元素或对象、数组去重
一.找出两个数组中的不同元素或对象 1. 数据 var arr1 = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏" ...
- ES6中Set方法实现数组去重
关于Set的定义: Set : 使用构造函数定义一个set类型,构造函数是一个数组:set类型里面的元素不允许重复.可以用于数组去重. 举例:对一个含有多种数据类型的数组进行去重 let arr = ...
- js 去重某个键值 数组对象_js数组去重(包括对象数组去重)
2019.08.02补: 对象数组建议直接循环然后使用工具库(lodash)的深比较,评论里也有指出,文章的方法有些取巧了 生产环境不要这么玩~. 方法一:利用ES6的Array.from()/扩展运 ...
- ES6字符串、对象、数组不常见但实用的API方法
目录 1.字符串 1.1 at()方法 1.2 includes()方法 1.3 repeat() 1.4 padStart() .padEnd() 2.数组 2.1 Array.from() 2.2 ...
- 算法:对象方式数组去重
var arr = [3, 1, 1, 4 , 2 , 4 , 2 , 4 , 2, 1, 1, 3, 3, 3];var ary=[];var obj={};for(var i=0;i<arr ...
- es6怎么将对象转换为数组
var obj={name:"wz",age:"12",sex:"女"}console.log(Object.values(obj))var ...
最新文章
- linux下occi操作oracle数据库,中文乱码的问题
- 接口转发和重定向区别(一)
- go defer 语句会延迟函数的执行直到上层函数返回。
- 简述生成式对抗网络 GAN
- 监控 DNS 流量,预防安全隐患五大招!
- UVa10340 - All in All
- [Giveaway] 来自AnyBizSoft、4Media、EASEUS的限时免费软件
- Android Studio 上传aar(Library)到JCenter
- [Codeforces1148C]Crazy Diamond——构造
- 高性能diffpatch算法 -- 如何将微信Apk的官方增量包20.4M缩小到7.0M
- 关于getc与fgetc和getchar的本质区别
- Linux——MySQL-MMM
- 服务器内存不够了?看这里!
- 关于video++,jsrun,有道笔记等的感想
- linux sed 替换符号,linux sed 批量替换文件中的字符串或符号
- react项目中解决IE浏览器下报Promise未定义的错误
- Java核心技术【卷一】——学习笔记(五)--泛型(一)
- python CAD图形合并
- Guitar Pro8中文版打谱编曲软件
- 计算机专业学生宿舍用台式,大学宿舍限电可以用台式机吗 大学宿舍用台式机跳闸怎么办...