被问到如何给数组中对象去重,想到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中给数组中对象去重相关推荐

  1. java和js中遍历数组和对象的总结

    java和js中遍历数组和对象的总结 在这儿写遍历数组和对象,权当复习和总结 1.java中数组的三种初始化方法 ①静态初始化 [java] view plaincopy 1. int[] arr = ...

  2. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  3. JS 移除数组中指定索引项

    JS移除数组中的指定的索引的项: ////移除指定索引的对象Array.prototype.remove = function (dx) {if (isNaN(dx) || dx > this. ...

  4. JS JavaScript中去除数组中重复元素的方法

    JS JavaScript中去除数组中重复元素的方法 感觉比较好理解的3种方法,总结一下,大家共同学习 方法一: Array.prototype.method1 = function(){ var a ...

  5. JS中去除数组中重复元素的方法

    JS中去除数组中重复元素的方法 第一种方法:使用数组中的splice方法 splice():删除元素,并向数组添加新元素,并返回被删除的元素 function f1(){var _arr=[8,5,0 ...

  6. JS中删除数组中的元素

    前言:主要记录一下数组在js中的使用问题. 一.基本操作 1.数组的创建 主要有两种方式: var arr1 = new Array(); var arr2 = [",",&quo ...

  7. js选出给定数组中所有的偶数/奇数/n的倍数(filter)

    js选出给定数组中所有的偶数/奇数/n的倍数(filter) 1.选出给定数组中所有的偶数 用for function collect_all_even(collection) {let res = ...

  8. js从一个数组中筛选出另一个数组中存在的值

    js从一个数组中筛选出另一个数组中存在的值 这里从arr中筛选arr1中存在的值,arr2为筛选结果数组 let arr=["1","2","3&qu ...

  9. js向一个数组中添加元素

    js向一个数组中添加元素 1,向数组开头添加元素 unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度 unshift() 方法将把它的参数插入 arrayObject 的头部,并 ...

  10. html数组删除指定元素,js怎么删除数组中指定元素?

    js中删除数组中指定元素的方法:首先通过循环遍历该数组得到指定元素的索引值,然后根据索引值使用splice()方法即可删除元素,语法"array.splice(索引值,1)". J ...

最新文章

  1. 大华测试笔试题_互联网校招非技术岗的这三类笔试题目你都清楚了吗?
  2. tomcat屏蔽ip
  3. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)...
  4. WinForms多线程编程之摇奖程序
  5. 小米宣布新一轮组织架构调整,崔宝秋挂帅技术委员会
  6. designer pyqt5 界面切换_PyQT5堆叠布局:切换界面(QStackedLayout)
  7. Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
  8. SQL Server中的日期类型
  9. Java求质数(素数)(超详细)
  10. 如何在IDM中设置代理服务器
  11. 嵌入式:ARM系列处理器详解与性能对比
  12. 小趴菜学习c语音记录第六天
  13. unable to access ‘https://code.srdcloud.cn/a/ifst/ifst-fe/‘: Failed to connect to code.srdcloud.c
  14. linux清除firefox打开就崩溃,火狐一打开就崩溃,求解决方法!
  15. 什么会导致HTTP出现429请求过多错误?
  16. python程序设计基础刘艳网课_智慧职教APPPython程序设计基础(九江职业技术学院)题目答案...
  17. 智能家居的发展简史,未来的发展方向有哪些
  18. 成考期末计算机组成原理,计算机组成原理期末考试试题及答案
  19. 图扑孪生工厂流水线组态图可视化
  20. 阿里云全面升级计算体系结构,云业务已成为新的强劲增长点 | 数据猿采访

热门文章

  1. php call_user_func_array 性能,php-call_user_func_array是否太慢?
  2. mysql 安装包_ubuntu下安装mysql全记录
  3. linux 内核模块 编写例子,Linux内核模块实例
  4. linux回显冲突,Linux-Binfmt-support-不允许我回显注册
  5. 打印当前时间 毫秒_时间轮定时器
  6. linux追踪tomcat报错信息,linux下tomcat服务的启动、关闭与错误跟踪
  7. html 中ajax 请求没反应,ajax请求数据成功,页面的数据没有加载出来
  8. 第十六届全国大学生智能车参赛与防疫承诺书
  9. 从0开始构建Arduino_STM32
  10. 测试各种型号LED的反向光敏电流与光伏信号