数组去重的方式

提示: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数组去重相关推荐

  1. vue js ES6 数组去重常用的几种方法

    1. [-new Set(array)]去重 1.1去除数组重复成员: let old_array = [1, 2, 3, 4, 4] let new_array = [...new Set(old_ ...

  2. js(es6)数组去重

    // 利用set.reduce.filter去重 // 1.Set function getSetArr(arr) {     return [...new Set(arr)] } console.l ...

  3. 前端:JS实现数组去重常用的六种方法介绍

    今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...

  4. Js面试题(一)--js实现数组去重怎么实现?

    方法1.创建一个新的临时数组来保存数组中已有的元素 方法2.使用哈希表存储已有元素 方法3.使用indexof判断数组元素第一次出现的位置是否为当前位置 方法4.先排序再去重 第一种方法和第三种方法都 ...

  5. ES6数组去重的三个简单办法

    ES6数组去重的三个简单办法 简单说一下利用ES6实现数组去重的三个办法. 第一种: 利用Map对象和数组的filter方法 贴上相关代码 打印后的结果 通过打印我们发现,确实实现了我们想要的效果.那 ...

  6. JS对象数组去重简单有效方法

    I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...

  7. Js中数组去重的几种方法

    前几天在看前端面试题的时候,其中js部分有个问题是实现数组去重的算法,一开始就想了一两种方法,后来仔细回忆了下这个题,觉得该问题实现方法确实不止局限于一两种方法 ,从不同的角度去看待该问题就会有多种实 ...

  8. es6 数组去重_《前端算法系列》数组去重

    虽然算法在前端开发中很少会得以使用,但是了解常用的算法,熟悉各种算法的性能和优劣,将会让你在前端的道路上走的更远. 前言 文中所有代码位于位于此代码仓库中,大家可以下载代码进行学习.推敲和改进.另,如 ...

  9. JS实现数组去重(重复的元素只保留一个)

    1.遍历数组法 它是最简单的数组去重方法(indexOf方法) 实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中: var arr=[2,8,5, ...

最新文章

  1. 【LInux】16_软件管理源码包管理
  2. POJ 2299 Ultra-QuickSort(树状数组 + 离散)
  3. mysql bug_MySQL 记一次 Bug发现过程
  4. mysql goldengate_goldengate同步mysql
  5. mysql导入库排除某个表_mysql导入数据排除表-mysql导入数据排除某张表或多张表-吾爱编程网...
  6. css网页favicon_自用代码css获取任意网址的/favicon.ico的方法教程
  7. 支持向量机c++实现
  8. setValuesForKeysWithDictionary:的用途
  9. iphone投屏ipad_幕享免费无线投屏:你朝思暮想的屏幕互联方式
  10. 十分钟理解线性代数的本质_如何理解线性代数?
  11. 数据挖掘产品 IBM SPSS Modeler 新手使用入门
  12. 中国制鞋机械行业调研与投资战略报告(2022版)
  13. rtmp推流工具_EV录屏推流抖音直播教程——墨涩网
  14. pos机Project v1.1
  15. 使用json报错java.lang.NoClassDefFoundError: nu/xom/ParentNode
  16. html常用特殊符号
  17. 运营︱快速提高app日活的方法
  18. Laravel+Vue前后端分离项目(四)邮箱验证与滑动验证
  19. mysql数据库表锁、行锁
  20. eWebEditor漏洞 [转]

热门文章

  1. RDB分析工具redis-rdb-tools的安装
  2. 期末个人总结博客----(谢永青)
  3. 知识的价值在于交流和应用,《高效能人士的七个习惯(1第一部分_重新探索自我)》 Inber读书分享
  4. Java对excel文件的处理
  5. 缓存一致性MESI与内存屏障
  6. windows控制台命令窗口中文乱码chcp 65001
  7. idea 导出war包
  8. mysql 三个表内连接查询_MySQL5.5多表之连接查询
  9. OneDrive 高速5T网盘使用方法以及Office365永久使用账号获取。
  10. 3月第4周业务风控关注 |9款违规App曝光:涉及恶意扣费、隐私窃取、赌博