Задать вопрос

Как отфильтровать массив объектов, чтобы значения одного из свойств в результирующем массиве были уникальны?

Есть массив:

{
  name: 'Name 1',
  city: 'city 1',
  developer: 'dev 1',
},
{
  name: 'Name 2',
  city: 'city 2',
  developer: 'dev 2',
},
{
  name: 'Name 3',
  city: 'city 1',
  developer: 'dev 3',
},

Как можно отфильтровать данные по уникальному значению?
Например: выбрать города чтобы значения не повторялись, city 1 и city 2 вывести в список городов.
  • Вопрос задан
  • 424 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Для этих целей есть удобная функция в библиотеке _lodash: uniqBy

var cities = [{
  name: 'Name 1',
  city: 'city 1',
  developer: 'dev 1',
},
{
  name: 'Name 2',
  city: 'city 2',
  developer: 'dev 2',
},
{
  name: 'Name 3',
  city: 'city 1',
  developer: 'dev 3',
}];


var result = _.uniqBy(cities, 'city');
console.log(result);


https://jsfiddle.net/1utfwv7r/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
evgeniy8705
@evgeniy8705
Повелитель вселенной
// то что вы предоставили это не JSON...
const data = [
  { "name": "Name 1", "city": "city 1", "developer": "dev 1" }, 
  { "name": "Name 2", "city": "city 2", "developer": "dev 2" }, 
  { "name": "Name 3", "city": "city 1", "developer": "dev 3" }
];

const cities = new Set();

JSON.parse(JSON.stringify(data)).forEach(item => {
	cities.add(item.city)
});

console.log(cities); // {"city 1", "city 2"}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы