js中给数组中对象去重
被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到。
方法一:
let ary=[{id: 0, name: "小明"},{id: 1, name: "小张"},{id: 2, name: "小李"},{id: 3, name: "小孙"},{id: 1, name: "小周"},{id: 2, name: "小陈"},
];
var result = [];
var obj = {};
ary.forEach((ele,index)=>{if(!obj[ele.id]){result.push(ele);obj[ele.id]=true;}
});
//console.log(result)
方法二:用数组的reduce()方法(累加器)
redeuce()参数:回调函数,传递给函数初始值(可选)
回调函数的参数:
1:初始值, 或者计算结束后的返回值。
2:当前元素
3:当前元素的索引(可选)
4:当前元素所属的数组对象(可选)
let arys=[1,2,3];
//curs第一次为初始值1,之后为上一次累加结果3,
//next当前要累加得元素
var a=arys.reduce((curs,next)=>{// console.log(next)//1+2//3+3return curs+next;
});
//console.log(a);//6
利用redeuce()为数组中对象去重
let ary=[{id: 0, name: "小明"},{id: 1, name: "小张"},{id: 2, name: "小李"},{id: 3, name: "小孙"},{id: 1, name: "小周"},{id: 2, name: "小陈"},
];
let obj = {};
ary=ary.reduce((curs,next)=>{obj[next.id]?"":obj[next.id]=true&& curs.push(next);return curs;
},[]);
js中给数组中对象去重相关推荐
- java和js中遍历数组和对象的总结
java和js中遍历数组和对象的总结 在这儿写遍历数组和对象,权当复习和总结 1.java中数组的三种初始化方法 ①静态初始化 [java] view plaincopy 1. int[] arr = ...
- 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组
3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...
- JS 移除数组中指定索引项
JS移除数组中的指定的索引的项: ////移除指定索引的对象Array.prototype.remove = function (dx) {if (isNaN(dx) || dx > this. ...
- JS JavaScript中去除数组中重复元素的方法
JS JavaScript中去除数组中重复元素的方法 感觉比较好理解的3种方法,总结一下,大家共同学习 方法一: Array.prototype.method1 = function(){ var a ...
- JS中去除数组中重复元素的方法
JS中去除数组中重复元素的方法 第一种方法:使用数组中的splice方法 splice():删除元素,并向数组添加新元素,并返回被删除的元素 function f1(){var _arr=[8,5,0 ...
- JS中删除数组中的元素
前言:主要记录一下数组在js中的使用问题. 一.基本操作 1.数组的创建 主要有两种方式: var arr1 = new Array(); var arr2 = [",",&quo ...
- js选出给定数组中所有的偶数/奇数/n的倍数(filter)
js选出给定数组中所有的偶数/奇数/n的倍数(filter) 1.选出给定数组中所有的偶数 用for function collect_all_even(collection) {let res = ...
- js从一个数组中筛选出另一个数组中存在的值
js从一个数组中筛选出另一个数组中存在的值 这里从arr中筛选arr1中存在的值,arr2为筛选结果数组 let arr=["1","2","3&qu ...
- js向一个数组中添加元素
js向一个数组中添加元素 1,向数组开头添加元素 unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度 unshift() 方法将把它的参数插入 arrayObject 的头部,并 ...
- html数组删除指定元素,js怎么删除数组中指定元素?
js中删除数组中指定元素的方法:首先通过循环遍历该数组得到指定元素的索引值,然后根据索引值使用splice()方法即可删除元素,语法"array.splice(索引值,1)". J ...
最新文章
- 大华测试笔试题_互联网校招非技术岗的这三类笔试题目你都清楚了吗?
- tomcat屏蔽ip
- [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)...
- WinForms多线程编程之摇奖程序
- 小米宣布新一轮组织架构调整,崔宝秋挂帅技术委员会
- designer pyqt5 界面切换_PyQT5堆叠布局:切换界面(QStackedLayout)
- Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
- SQL Server中的日期类型
- Java求质数(素数)(超详细)
- 如何在IDM中设置代理服务器
- 嵌入式:ARM系列处理器详解与性能对比
- 小趴菜学习c语音记录第六天
- unable to access ‘https://code.srdcloud.cn/a/ifst/ifst-fe/‘: Failed to connect to code.srdcloud.c
- linux清除firefox打开就崩溃,火狐一打开就崩溃,求解决方法!
- 什么会导致HTTP出现429请求过多错误?
- python程序设计基础刘艳网课_智慧职教APPPython程序设计基础(九江职业技术学院)题目答案...
- 智能家居的发展简史,未来的发展方向有哪些
- 成考期末计算机组成原理,计算机组成原理期末考试试题及答案
- 图扑孪生工厂流水线组态图可视化
- 阿里云全面升级计算体系结构,云业务已成为新的强劲增长点 | 数据猿采访
热门文章
- php call_user_func_array 性能,php-call_user_func_array是否太慢?
- mysql 安装包_ubuntu下安装mysql全记录
- linux 内核模块 编写例子,Linux内核模块实例
- linux回显冲突,Linux-Binfmt-support-不允许我回显注册
- 打印当前时间 毫秒_时间轮定时器
- linux追踪tomcat报错信息,linux下tomcat服务的启动、关闭与错误跟踪
- html 中ajax 请求没反应,ajax请求数据成功,页面的数据没有加载出来
- 第十六届全国大学生智能车参赛与防疫承诺书
- 从0开始构建Arduino_STM32
- 测试各种型号LED的反向光敏电流与光伏信号