Nolis
@Nolis
it-гопник

Какой массив объектов описан правильно?

Всем привет, извиняюсь за крайне "тупой" вопрос, но с объектами имел дело не часто.
Какой массив объектов более правильный/читабельный/практичный?

Первый вариант:

this.cities1 = [
        { city: 'Москва', param: { cityCode: 'moskva54', views: '53М', visites: '1,1M', isActive: true } },
        { city: 'Владимир', param: { cityCode: 'vladimir', views: '23М', visites: '1,2M', isActive: false } }
];


Второй вариант:

arr = [
  {
    'Москва': {
    cityCode: 176533,
    views: 541345,
    visits: 234
    }
  },
  {
    'Питер': {
    cityCode: 166533,
    views: 13314345,
    visits: 21334
    }
  },
  {
    'Ребровка': {
    cityCode: 16615431533,
    views: 1345,
    visits: 234
    }
  },
{
    'Село': {
    cityCode: 165533,
    views: 1345,
    visits: 234
    }
  }
];


Возможно они оба в чем-то подходят куда-то, но есть 2 задачки:

1. Нужно получить данные о городах (без параметров).
2. Нужно получить статические данные в разрезе города. Единственный параметр для запроса - код города Коды городов должны возвращаться из запроса по городам.

Что для этого может подойти и/или какой подход более правильный?
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
Не вижу смысла выделять city ни в ключ, ни в отдельный параметр. В чем смысл? Сделайте плоскую таблицу
this.cities1 = [
        { city: 'Москва', cityCode: 'moskva54', views: '53М', visites: '1,1M', isActive: true  },
        { city: 'Владимир', cityCode: 'vladimir', views: '23М', visites: '1,2M', isActive: false }
];


Либо вообще вместо массива объект:
this.cities1 = {
  'Москва': { city: 'Москва', cityCode: 'moskva54', views: '53М', visites: '1,1M', isActive: true  },
  'Владимир': { city: 'Владимир', cityCode: 'vladimir', views: '23М', visites: '1,2M', isActive: false }
};


В этом случае вы моментально получаете данные по городу или по нескольким, так как названия индексированы.. Если же вам нужен список, вы просто получаете Object.keys(this.cities1) или Object.values(this.cities1) если вместо со всеми данными
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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