js 对象数组排序+去重问题
[ { name: '玉骨遥寒薇结海报', created_at: '2021-06-04 04:54:06.164', }, { name: '玉骨遥寒薇结海报', created_at: '2021-06-04 04:52:49.753', }, { name: '玉骨遥寒薇结海报', created_at: '2021-06-04 05:02:02.398', }, { name: '公交车抛锚警民携手推车为考生开路', created_at: '2021-06-04 04:52:40.588', }, { name: '公交车抛锚警民携手推车为考生开路', created_at: '2021-06-04 05:07:21.587', },]1.去除name相同的对象2.且保留的是创立时间最早的对象
处理方法:
image.png
数组去重有效的方法:
1.简单数组 利用ES6 Set去重(ES6中最常用)function unique (arr) { return Array.from(new Set(arr)) //from() 方法用于通过拥有 length 属性的对象或者可迭代的对象来返回一个数组。 // 或者者 [...new Set(arr)]}2.利用for嵌套for,而后splice去重(ES5中最常用)function unique(arr){ for(let i=0; i<arr.length; i++){ for(let j=i+1; j<arr.length; j++){ if(arr[i].id===arr[j].id){ //第一个数id等于第二个数id,splice方法删除第二个 arr.splice(j,1); j--; } } }return arr;}3.利用reduce+findIndex function unique(arr) { return arr.reduce((prev,cur)=> prev.findIndex(v1=>v1.name==cur.name) ==-1 ? [...prev, cur] : prev ,[]) }
js如何去除一个数组中与另一个数组中的值相同的元素
法1:双层for循环function array_diff(a, b) { for (var i = 0; i < b.length; i++) { for (var j = 0; j < a.length; j++) { if (a[j].name == b[i].name) { a.splice(j, 1) j = j - 1 } } } return a }法2:数组方法function array_diff(a, b) { return a.filter(ee=>b.findIndex(v1=>v1.name==ee.name) === -1)}
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » js 对象数组排序+去重问题
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » js 对象数组排序+去重问题