reduce()实现数组去重
关于reduce()我们这里不做太多说明,主要明白这是一个类递归的方法。其中接受两个参数,一个是回调函数,一个是可选的默认值。
arr.reduce((pre, cur, index, arr) => {}, 0)
// 这里的pre是上一个递归后的返回值,而cur是当前值,这两个参数是必传的,index是当前索引,arr是原始
//数组,是可选的;0是pre的默认值,是一个可选参数,我们在进行一些数学运算可以给他赋一个初始值
这里我们主要运用reduce()的递归特性来完成数组的去重
let arr = [1, 2, 3, 4, 5, 4, 2, 3,6,7,2]
let obj = {}
let arr1 = arr.reduce((pre, cur) => {if(obj[cur]) {return pre}else {obj[cur] = truepre.push(cur)return pre}
}, [])
console.log(arr1)
这里我们通过定义一个obj来接收当前的值用于判断是否已经存在,若不存在则给数组进行添加。
我们可以看到这里的结果已经是没有重复的。
关于数组的去重还有很多方法,这里我只是举了一种,我们也可以通过Set数据类型等方法来进行去重。
reduce()实现数组去重相关推荐
- es6新增数组、数组去重、es6新特性
ES6新增的数组方法 1.forEach forEach()会遍历数组, 循环体内没有返回值,forEach()循环不会改变原来数组的内容, forEach()有三个参数, 第一个参数是当前元素, 第 ...
- js中ES6新增的数组方法reduce(),和数组去重,降维。
js中ES6新增的数组方法reduce() js数组reduce()详解 基本概念: reduce()方法接收一个函数作为累加器,数组中的每一值(从左到右)开始缩减,最后成为一个值 reduce()为 ...
- 数组去重--这几种方法够不?
数组去重,是校招面试的必考知识点.简单的说,数组去重就是将一个数组中的相同的元素删除,只保留其中的一个.这里的相同其实是一个陷阱,有好多同学只认为值相等即为相同,而忽略类类型的判断.所以大家在进行数组 ...
- java数组去重_数组去重12种方案-你要的全在这
首先我们先温习一下数组的常用的方法 pop push shift unshift slice splice sort reverse concat join indexOf lastIndexOf m ...
- 数组去重与数组扁平化
一.数组去重(1)indexOf() function only(arr){var res=[];arr.forEach(function(item){if(res.indexOf(item)==-1 ...
- 数组去重(包括es6)
1.最基本的去重方法 思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中. function unique(arr){var repeat=fa ...
- vue中向数组去重_「前端剑指offer第3期」来,手写一下数组去重
数组去重一般来说就这么几种方法,理解代码,记住就好!Map.Set.reduce.filter~ 方法1 .Map 创建一个Map对象,把数组的值作为Map对象的索引,再获取所有的索引. const ...
- JS数组去重方法记录
js数组去重方法 1.遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组 代码如下(示 例): function getArray(ar) {va ...
- JS----JavaScript数组去重(12种方法,史上最全)
数组去重的方法 一.利用ES6 Set去重(ES6中最常用) Set 不包含重复元素的值的集合 Map 双列集合 键值对 与object的区别 : object中的key只能是string类型 而Ma ...
最新文章
- 程序员的认知-中国程序员为什么跳槽
- 种子谋定翻身-农民丰收节交易会·万建民:破解卡脖子难题
- Laravel核心解读--控制器
- ie6 png不透明的解决方法
- jQuery 对象与Dom 对象互转
- 初步了解关于js跨域问题
- Proxmark3初学:用PM3克隆M1普通门禁卡方法
- 利用混合高斯模型实现视频中运动目标与背景的分离
- 分集增益的不同合并方式的性能分析
- 小技巧之chrome浏览器安装淘宝比价插件
- 重新定义“车规级”激光雷达
- 阿里云API请求签名失败的解决办法
- Windows10 LSTC 2021输入法无法使用的问题
- java阿里面试官直接告诉你录取答案,你还在犹豫那就晚了
- win10user文件夹迁移_win10专业版用户文件夹迁移到另一个驱动器的方法
- RFID固定资产管理降低人工成本,实现智能化的管理-新导智能
- sklearn-机器学习笔记
- 12.zabbix 自定义模板
- 三人同行七十稀 - 中国剩余定理浅析
- linux 两个文件比较是否完全相同
热门文章
- TLS Client-initiated 重协商攻击(CVE-2011-1473)漏洞验证测试
- 华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程
- dell服务器 指示灯_Dell PowerEdge服务器或PowerVault存储诊断LED指示灯(QuadPack)故障排除...
- 服务器维护首先查看指示灯,HP ILO2 使用详细教程[图文]
- LoadRunner函数大全
- itunes显示app store无法连接服务器,无法连接到iTunes Store的解决方案
- H5视频会议,直播,通话,教学,支持Webrtc、rtmp、sip、rtsp转协议、IPCAM、白板、桌面共享、免插件、web全平台、视频融合系统研发笔记。...
- 牛客网刷题java之(斐波那契数列)一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- Service(服务)之 Local Service(本地服务)
- 如何下载在线课程网站的视频