我遇到了这个用es6
创建唯一数组的例子[ ...new Set(array) ]
在我尝试使用一组对象并且它没有返回唯一数组之前,这似乎工作正常。
即
let item = [ ...new Set([{id:123,value:'test'},{id:123,value:'test'}]) ];
为什么?
答案 0 :(得分:8)
答案 1 :(得分:4)
这将有效:
let objectReference = {id:123,value:'test'}
let uniqueArray = [...new Set([objectReference, objectReference])]
>> [{id:123,value:'test'}]
你在做什么:
let objRef1 = {id:123,value:'test'} // creates a reference to a location in memory
let objRef2 = {id:123,value:'test'} // creates a new reference to a different place in memory
let uniqueArray = [...new Set([objRef1, objRef2])]
>> [{id:123,value:'test'},{id:123,value:'test'}]
答案 2 :(得分:2)
你可以尝试
let arr = [{id:1},{id:1},{id:2}];
uniqueArray(arr) //[{id:1},{id:2}]
我知道它很难看,但在大多数情况下除了在你的对象参数中有新的Date(),然后在stringify上转换为ISO字符串。
然后做
omniauth-linkedin-oauth2 (0.2.5)
devise (4.4.1)