Вы слышали о библиотеке Лодаш?
Я рекомендую вам эту утилиту, когда вы действительно не хотите применять свою логику к коду и использовать уже существующий код, который оптимизирован и надежен.
Подумайте о создании массива, подобного этому
things.thing.push({place:"utopia",name:"unicorn"});
things.thing.push({place:"jade_palace",name:"po"});
things.thing.push({place:"jade_palace",name:"tigress"});
things.thing.push({place:"utopia",name:"flying_reindeer"});
things.thing.push({place:"panda_village",name:"po"});
Обратите внимание, что если вы хотите сохранить один атрибут уникальным, вы можете сделать это с помощью библиотеки lodash. Здесь вы можете использовать _. UniqBy
.uniqBy (массив, [iteratee = .identity])
Этот метод похож на _. Uniq (который возвращает версию массива без дубликатов, в которой сохраняется только первое вхождение каждого элемента) за исключением того, что он принимает iteratee, который вызывается для каждого элемент в массиве для генерации критерия, по которому вычисляется уникальность.
Так, например, если вы хотите вернуть массив с уникальным атрибутом 'place'
_. UniqBy (вещи. Вещи, «место»)
Точно так же, если вы хотите уникальный атрибут как «имя»
_. UniqBy (things.thing, 'name')
Надеюсь, это поможет.
Ура!