$colors: (
a: red,
b: green,
c: blue
);
@each $color, $name in $colors{
$i: index($colors, $color $name);
a:nth-child(#{$i}){ color:$color; }
}
Почему это?
blockquote>Согласно документации
Объект Set позволяет хранить уникальные значения любой тип, будь то примитивные значения или ссылки на объекты.
blockquote>Теперь ссылка для каждого из этих массивов внутри этого конструктора
Set
будет отличаться, поэтому конструктор не считается уникальным значением .
Это будет работать:
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'}]
вы можете попытаться сделать
uniqueArray = a => [...new Set(a.map(o => JSON.stringify(o)))].map(s => JSON.parse(s))
Я знаю его уродливое, как черт, но в большинстве случаев работает независимо от того, где у вас есть новая Date () в вашем параметре объекта, а затем в stringify преобразуется в ISO string.
, то есть
let arr = [{id:1},{id:1},{id:2}];
uniqueArray(arr) //[{id:1},{id:2}]