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%",
                    "without_armor": [{
                        "min": "2",
                        "avg": "2",
                        "max": "2"
                    }],
                    "gen4": [{
                        "min": "22",
                        "avg": "22",
                        "max": "22"
                    }],
                    "zhuk6": [{
                        "min": "21",
                        "avg": "21",
                        "max": "21"
                    }]
                },
                {
                    "name": ".45 RIP",
                    "caliber": "11,43x23",
                    "damage": "72",
                    "arm_pentra": "19",
                    "arm_damage": "36%",
                    "bullet_frag": "1%",
                    "speed": "285",
                    "ricochet": "7%",
                    "without_armor": [{
                        "min": "1",
                        "avg": "1",
                        "max": "1"
                    }],
                    "gen4": [{
                        "min": "15",
                        "avg": "15",
                        "max": "15"
                    }],
                    "zhuk6": [{
                        "min": "15",
                        "avg": "15",
                        "max": "15"
                    }]
                }
            ]
        },
        {
            "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%",
                    "without_armor": [{
                        "min": "1",
                        "avg": "1",
                        "max": "1"
                    }],
                    "gen4": [{
                        "min": "1",
                        "avg": "1",
                        "max": "2"
                    }],
                    "zhuk6": [{
                        "min": "1",
                        "avg": "1",
                        "max": "2"
                    }]
                },
                {
                    "name": "Б-32",
                    "caliber": "12,7x108",
                    "damage": "182",
                    "arm_pentra": "88",
                    "arm_damage": "88%",
                    "bullet_frag": "17%",
                    "speed": "818",
                    "ricochet": "38%",
                    "without_armor": [{
                        "min": "1",
                        "avg": "1",
                        "max": "1"
                    }],
                    "gen4": [{
                        "min": "1",
                        "avg": "1",
                        "max": "2"
                    }],
                    "zhuk6": [{
                        "min": "1",
                        "avg": "1",
                        "max": "2"
                    }]
                }
            ]
        },



Есть такой json файл, я формирую таблицу, и делаю сортировку по калибру
sortByCaliber() {
      this.ammo_data.sort((a, b) => {
        a.caliber.localCompare(b.name)
      });
    },

Но, как сделать сортировку по damage, ведь он находится в массиве и я не могу написать
sortByDamage() {
      this.ammo_data.sort((a, b) => {
        return a.items.damage - b.items.damage;
      });
    },

Тогда как можно дойти до этих свойств?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Преобразовать массив ammo в плоский массив items, что-то типа:
let items = ammo.reduce((accum, el) => accum.concat(el.items), []);

и уже его сортировать, фильтровать как угодно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
a.items[0].damage
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы