js、ES6数组去重
数组去重的方式
提示:reduce,Array.from(new Set(array)),扩展运算符 …,map方法等
reduce去重
// 数组对象去重
let obj = {};
let arr = [{id:'1',name:'测试1',},{id:'2',name:'测试2',},{id:'3',name:'测试3',},{id:'1',name:'测试1',},
]
arr = arr.reduce((pre,next) => {obj[next.id] ? "" : obj[next.id] = true && pre.push(next);return pre;
},[])
//结果arr = [{id:'1',name:'测试1',},{id:'2',name:'测试2',},{id:'3',name:'测试3',},
]
es6 array.from(new Set(arr))去重
let arr = [1,2,3,2,35,6,'A','B','L','M','A','A'];
let arrCopy = [];
arrCopy = Array.from(new Set(arr));
//结果 [1, 2, 3, 35, 6, 'A', 'B', 'L', 'M']
扩展运算符 … 和Set 结合去重
let arr = [1,2,3,2,35,6,'A','B','L','M','A','A'];
let arrCopy = [];
arrCopy = [...new Set(arr)];
//结果 [1, 2, 3, 35, 6, 'A', 'B', 'L', 'M']
map 去重
let arr = [1,2,3,2,35,6,'A','B','L','M','A','A'];
let mapFun = new Map();
let arrCopy = [];
//通过for循环的方式
// for (let i = 0; i < arr.length; i++) {// if (mapFun.has(arr[i])) {// mapFun.set(arr[i], true)
// } else {// mapFun.set(arr[i], false)
// arrCopy.push(arr[i])
// }
// }
//通过 filter 的方式
arrCopy = arr.filter((a) => !mapFun.has(a) && mapFun.set(a, 1))//结果 [1, 2, 3, 35, 6, 'A', 'B', 'L', 'M']// 函数封装
let arr = [1,2,3,2,35,6,'A','B','L','M','A','A'];
function deduplicationMap(arr) {let mapFun = new Map();let arrCopy = [];//通过for循环的方式// for (let i = 0; i < arr.length; i++) {// if (mapFun.has(arr[i])) {// mapFun.set(arr[i], true)// } else {// mapFun.set(arr[i], false)// arrCopy.push(arr[i])// }// }//通过 filter 的方式arrCopy = arr.filter((a) => !mapFun.has(a) && mapFun.set(a, 1))return arrCopy
}
//结果 [1, 2, 3, 35, 6, 'A', 'B', 'L', 'M']
如有不当之处,欢迎留言指正
js、ES6数组去重相关推荐
- vue js ES6 数组去重常用的几种方法
1. [-new Set(array)]去重 1.1去除数组重复成员: let old_array = [1, 2, 3, 4, 4] let new_array = [...new Set(old_ ...
- js(es6)数组去重
// 利用set.reduce.filter去重 // 1.Set function getSetArr(arr) { return [...new Set(arr)] } console.l ...
- 前端:JS实现数组去重常用的六种方法介绍
今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...
- Js面试题(一)--js实现数组去重怎么实现?
方法1.创建一个新的临时数组来保存数组中已有的元素 方法2.使用哈希表存储已有元素 方法3.使用indexof判断数组元素第一次出现的位置是否为当前位置 方法4.先排序再去重 第一种方法和第三种方法都 ...
- ES6数组去重的三个简单办法
ES6数组去重的三个简单办法 简单说一下利用ES6实现数组去重的三个办法. 第一种: 利用Map对象和数组的filter方法 贴上相关代码 打印后的结果 通过打印我们发现,确实实现了我们想要的效果.那 ...
- JS对象数组去重简单有效方法
I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...
- Js中数组去重的几种方法
前几天在看前端面试题的时候,其中js部分有个问题是实现数组去重的算法,一开始就想了一两种方法,后来仔细回忆了下这个题,觉得该问题实现方法确实不止局限于一两种方法 ,从不同的角度去看待该问题就会有多种实 ...
- es6 数组去重_《前端算法系列》数组去重
虽然算法在前端开发中很少会得以使用,但是了解常用的算法,熟悉各种算法的性能和优劣,将会让你在前端的道路上走的更远. 前言 文中所有代码位于位于此代码仓库中,大家可以下载代码进行学习.推敲和改进.另,如 ...
- JS实现数组去重(重复的元素只保留一个)
1.遍历数组法 它是最简单的数组去重方法(indexOf方法) 实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中: var arr=[2,8,5, ...
最新文章
- 【LInux】16_软件管理源码包管理
- POJ 2299 Ultra-QuickSort(树状数组 + 离散)
- mysql bug_MySQL 记一次 Bug发现过程
- mysql goldengate_goldengate同步mysql
- mysql导入库排除某个表_mysql导入数据排除表-mysql导入数据排除某张表或多张表-吾爱编程网...
- css网页favicon_自用代码css获取任意网址的/favicon.ico的方法教程
- 支持向量机c++实现
- setValuesForKeysWithDictionary:的用途
- iphone投屏ipad_幕享免费无线投屏:你朝思暮想的屏幕互联方式
- 十分钟理解线性代数的本质_如何理解线性代数?
- 数据挖掘产品 IBM SPSS Modeler 新手使用入门
- 中国制鞋机械行业调研与投资战略报告(2022版)
- rtmp推流工具_EV录屏推流抖音直播教程——墨涩网
- pos机Project v1.1
- 使用json报错java.lang.NoClassDefFoundError: nu/xom/ParentNode
- html常用特殊符号
- 运营︱快速提高app日活的方法
- Laravel+Vue前后端分离项目(四)邮箱验证与滑动验证
- mysql数据库表锁、行锁
- eWebEditor漏洞 [转]
热门文章
- RDB分析工具redis-rdb-tools的安装
- 期末个人总结博客----(谢永青)
- 知识的价值在于交流和应用,《高效能人士的七个习惯(1第一部分_重新探索自我)》 Inber读书分享
- Java对excel文件的处理
- 缓存一致性MESI与内存屏障
- windows控制台命令窗口中文乱码chcp 65001
- idea 导出war包
- mysql 三个表内连接查询_MySQL5.5多表之连接查询
- OneDrive 高速5T网盘使用方法以及Office365永久使用账号获取。
- 3月第4周业务风控关注 |9款违规App曝光:涉及恶意扣费、隐私窃取、赌博