博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何给一个数组对象去重
阅读量:6451 次
发布时间:2019-06-23

本文共 991 字,大约阅读时间需要 3 分钟。

1.利用indexOf

var arr = []var data = [    {id:1,time:'1'},    {id:2,time:'2'},    {id:2,time:'3'},]for(let val of data){    arr.push(val.id)}var newArr = [];var newArr2 = [];for(var i =0;i

2.直接for循环,利用对象属性的唯一性

var arr = [     {id:'1',data:'1'},     {id:'2',data:'2'},     {id:'1',data:'1'}, ]  var result = {} for(var i=0;i

 

3.es5数组新方法  reduce

var arr = [

{id:'1',data:'1'},
{id:'2',data:'2'},
{id:'1',data:'1'},
]

function norepeat(objArray){

var hash = {};
//reduce方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。
objArray = objArray.reduce(function(item, next) {//这是针对数组项操作的函数,对于每个数组项,reduce方法都会将其调用一次
//可使用最多四个参数来声明回调函数(第一个参数:通过上一次调用回调函数获得的值;第二个参数:当前数组元素的值;第三个参数:当前数组元素的数字索引;第四个参数:包含该元素的数组对象)
//这里只使用了两个参数,所以item和next分别代表上一次调用回调函数后的值和objArray项值
hash[next.id]?'':hash[next.id]=true&&item.push(next);//与func3逻辑相似
return item;
}, []);//初始值是一个空对象,使用reduce方法返回的是空对象通过叠加执行之后的结果
return objArray;
}
console.log('11',norepeat(arr))

 

转载于:https://www.cnblogs.com/aloehui/p/9256222.html

你可能感兴趣的文章
Entity Framwork CodeFirst 学习笔记五:数据库映射的默认配置和设置
查看>>
ant 执行java文件,java文件中含中文,显示乱码
查看>>
IE8兼容@media和mp4视频的解决方案
查看>>
第二周总结
查看>>
ASP.NET完整打包卸载更新攻略(By Installshield 2010)
查看>>
[120_移动开发Android]006_android开发之数据存储之sdcard访问
查看>>
[若有所悟]IT小兵总结IT人特点及挽留IT人才的九大策略
查看>>
概率图模型建模、学习、推理资料总结
查看>>
【转】知道这20个正则表达式,能让你少写1,000行代码
查看>>
自定义 启动和关闭 oracle 的命令
查看>>
用ASP.NET Core 2.0 建立规范的 REST API
查看>>
SQLite数据库、ListView控件的使用
查看>>
Storm程序的并发机制(重点掌握)
查看>>
Quartz
查看>>
正则表达式介绍
查看>>
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
4Sum——LeetCode
查看>>
论程序员加班的害处
查看>>