我有几个对象都是不同的,但都有一个id
字段。我想创建一个Set()来保存这些,但我不知道如何将该字段指定给Set构造函数/ prototype/etc。这是可行的吗?JavaScript设置()与特定密钥散列在
比方说,我有两种类型的对象(我给打字稿定义为简单起见):
interface Thing1 {
id: string;
someData: string[]
}
interface Thing2 {
id: string;
someString: string;
someOtherString: string
}
现在,我有这些东西两个数组,我们姑且称之为
array1: Thing1[];
array2: Thing2[];
我想要做的是创建一个new Set(array1)
然后add
每个Thing2
在array2
,执行两个数组的条件合并。
每个这些中的唯一键是id
字段 - 我希望有一些重载的构造函数或类似的模式,可以给一个lambda(la new Set(array1, (item) => item.id)
,也许),它将指定密钥散列的身份。
你的问题不是很清楚。更好地解释自己,然后添加代码以显示您想要实现的目标 –
这是您要问的问题? http://stackoverflow.com/questions/29759480/how-to-customize-object-equality-for-javascript-set – user886
@Andrew是的,这是粗略的 - 谢谢。 –