4
关注
2130
浏览

对象的ECMAScript 6(ES6)的集

为什么被折叠? 0 个回复被折叠
Wonvy 未验证用户 用户来自于: 广东省
2020-09-17 17:40
你可以使用reduce与esmascript 6map然后值传递给Set构造。然而,你可以在es6 new Set(arr.reduce((map,item)=>map.set(item.id, item), new Map()).values()); 正常使用Object为好,Object.values因为你知道你正在identifing通过id唯一的,这样只是创建id的关键指向实际的对象,因此,用相同的ID前面的物体它将会覆盖,你将最终得到只有一个对象对每个id,然后只是得到价值和构建你的设置。
pyramid 未验证用户 用户来自于: 广东省
2020-09-16 20:55

您可以删除所有的重复与.filter

let uniqueArr = arr.filter((item, index) => { 
    return arr.findIndex(item2 => item2.id === item.id) === index; 
}); 

小提琴demoing概念:https://jsfiddle.net/4oanw972/

qq 未验证用户 用户来自于: 广东省
2020-09-16 16:57

由于the reference状态,

设定的对象,您可以存储任何类型的唯一值,无论是原始值或对象引用。

如果这些是不同的对象引用,它们将不会被重复数据删除。如果对象需要通过id唯一密钥进行标识,那么Set是错误的选择。一个地图可以达到这个目的:

new Map([ 
    [#mixed char and num, {id : #mixed char and num , title : #string }], 
    ... 
]) 

如果对象不包含任何东西,但idtitle,地图可以简化为:

new Map([ 
    [#mixed char and num, #string], 
    ... 
]) 

关于作者

y 未验证用户

这家伙很懒,还没有设置简介

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:04
关注人数
4 人关注

相关问题

数组对象中的数组Javascript
将函数赋值给使用“this”引用自身的数组对象
如何知道当前页面代码添加到窗口中的对象?
从一个对象获取变量值 - jquery
js对象赋值为Null的时候就被回收释放内存吗
对象存储服务支持哪种加密机制?
shell脚本完成主机的集群内主机IP地址的探测
将数组映射到Typescript/Angular中的对象
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号