NooBiToo
@NooBiToo

Как не плодить циклы?

Есть отрывок JSON

{
  "ammo": [
    {
      "caliber": "11,43x23",
      "items": [
        {
          "name": ".45 FMJ",
          "caliber": "11,43x23",
          "damage": "72",
          "arm_pentra": "19",
          "arm_damage": "36%",
          "bullet_frag": "1%",
          "speed": "285",
          "ricochet": "7%"
        },
        {
          "name": ".45 RIP",
          "caliber": "11,43x23",
          "damage": "72",
          "arm_pentra": "19",
          "arm_damage": "36%",
          "bullet_frag": "1%",
          "speed": "285",
          "ricochet": "7%"
        }
      ]
    },
    {
      "caliber": "12,7x108",
      "items": [
        {
          "name": "12.7Б3T",
          "caliber": "12,7x108",
          "damage": "199",
          "arm_pentra": "80",
          "arm_damage": "95%",
          "bullet_frag": "17%",
          "speed": "818",
          "ricochet": "38%"
        },
        {
          "name": "Б-32",
          "caliber": "12,7x108",
          "damage": "182",
          "arm_pentra": "88",
          "arm_damage": "88%",
          "bullet_frag": "17%",
          "speed": "818",
          "ricochet": "38%"
        }
      ]
    },
    {


1) Для того, что бы получить данные name, damage и прочие я пишу 2 цикла for
<div v-for="ammo in info" :key="ammo.caliber">
        <div v-for="ammo in ammo.items" :key="ammo.name">

схематично, *сейчас это всё в компонентах vue*, так просто нагляднее, можно ли как то это делать в 1 цикл? или делать в 2 цикла это нормально?
2) как заметили из json, в caliber, есть items, в одном калибре по несколько items (патронов), но, что бы так же вывести информацию калибра, я дополнительно вписал caliber в items, так как не мог получить во втором цикле название калибра, но, думаю, что это не правильно, как можно получить свойство caliber при выводе name, damage и т.д.?
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
alekseyHunter
@alekseyHunter
Android developer
Если не хочешь получить ошибку индексации - никак.
Если хочешь - решаешь в лоб info[0].items[0].name.

Совет - не оптимизируй раньше времени. Вот будут затыки в производительности, тогда уже анализируй.
Разницы в 1 или 2 циклах на минимальном количестве элементах - нет.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
json в строку и потом regex того, что нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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