js reduce方法实现数组和对象去重

news/2024/7/19 14:39:04 标签: js, javascript

reduce方法

语法:

js">arr.reduce(function(total,current,index,array){
	
}, init);

参数说明

total :初始值 init ,或者计算结束后的返回值 (必需)

init:初始值(必需)

current,当前元素(可选)

index:当前元素索引(可选)

array:当前元素所属的数组对象(可选)

数组去重

js">	   var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5];

        var newArr = arr.reduce(function (total, current) {
            //indexOf方法 没有检索到对应的值,则该方法返回-1
            //&&为取假短路运算,前面为true的话,则运行后面的方法 将当前元素push进返回值中
            total.indexOf(current) === -1 && total.push(current);
            return total;  //返回运算结果
        }, []);
        console.log("输出结果", newArr);// [1, 2, 3, 4, 5]

对象去重

js">        let obj = [{dynasty:"唐"}, {dynasty:"宋"}, {dynasty:"汉"},{dynasty:"宋"},{dynasty:"唐"}];
        
        let newObj = obj.reduce(function (total, current) {
            //JSON.stringify  转为json字符串才可以使用indeOf方法检索
            JSON.stringify(total).indexOf(current.dynasty)===-1 && total.push(current)
            return total;
        }, []);
        console.log("输出结果",newObj); // [{dynasty: "唐"},{dynasty: "宋"},{dynasty: "汉"}]

http://www.niftyadmin.cn/n/874952.html

相关文章

微信小程序:文档下载功能

下载api说明 https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html 打开文档api说明 https://developers.weixin.qq.com/miniprogram/dev/api/file/wx.openDocument.html 方法 1.通过接口获取下载链接, 2.调用wx.downloadFile文…

dell笔记本怎么开启虚拟化_win10笔记本在睡眠后会自动重启

出现的故障现象:win10笔记本在点击睡眠后,屏幕熄灭,如果在一分钟之内移动鼠标,则可以正常唤醒,大约一分钟之后就会出现键盘灯亮灭,风扇转动,接着就是自动重启,桌面未保存文档全部丢失…

uniapp:省市选择 自定义组件

源码 https://gitee.com/river-winter/unappCity 效果图 两个数据文件 热门城市 common/hotData.js export default [{ name: "上海市", },{ name: "广州市", }, { name: "北京市", },{ name: "天津市", },{ name: "重庆市&q…

vue自定义指令在实际开发中的使用

创建一个文件来管理所有的自定义指令 src/directives/index.js 在src/directives/index.js文件中定义几个指令 //改变文字颜色指令 export const fontColor{//dom元素节点 options包含传入的属性对象inserted(dom,options){dom.style.backgroundoptions.value} } // 改变文字大…

阿里云oss_配置阿里云OSS图床

配置阿里云OSS图床 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 开通阿里云OSS 开通阿里云 OSS https://www.aliyun.com/product/oss/ 首先我…

pythonsocket编程步骤_Python 学习笔记 - socket(基本原理和流程)

在学Python之前,先复习一下网络的基本概念。比如TCP/IP 4层模型,最上面的应用软件发送数据包,数据包在运输层加上TCP或者UDP的报头,然后在网络层加上IP的报头,然后在数据链路层根据ethernet协议分割成帧,每…

js 递归算法将扁平数据处理成树状数据

示例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initia…

不关注公众号可以获取openid吗_微信公众平台开发获取 UnionID

微信公众平台更新&#xff0c;为开发者提供UnionID机制经开发者反馈&#xff0c;由于同一公司下多个公众号之间需要用户帐号互通&#xff0c;微信开放平台提供了UnionID机制&#xff0c;来解决此问题。通过获取用户基本信息接口&#xff0c;开发者可通过OpenID来获取用户基本信…