@habaka

Как оставить только один объект из массива если повторяются значения?

У меня есть массив с неким числом объектов:
[
    {
        "id": "1",
        "id_category": "1",
        "id_subcategory": "1",
        "name": "Сырные шарики",
        "price": "700",
        "description": null,
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "2",
        "id_category": "1",
        "id_subcategory": "1",
        "name": "Наггетсы",
        "price": "800",
        "description": null,
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "3",
        "id_category": "1",
        "id_subcategory": "1",
        "name": "Баклажаны по аргентински",
        "price": "1200",
        "description": null,
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "4",
        "id_category": "1",
        "id_subcategory": "1",
        "name": "Cremoso",
        "price": "1600",
        "description": "Шампиньоны с курицей в сливочном соусе.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "5",
        "id_category": "1",
        "id_subcategory": "1",
        "name": "Сет \"Kids\"",
        "price": "1600",
        "description": "Сет для детей, вкуснейшие наггетсы, тающий сыр и сочные колбаски в сопровождении картофеля фри.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "6",
        "id_category": "1",
        "id_subcategory": "2",
        "name": "Light Mix",
        "price": "1200",
        "description": "Свежие овощи с заправкой на Ваш выбор станут прекрасным воспоминанием об ушедшем лете и подарят Вам солнечное настроение.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "7",
        "id_category": "1",
        "id_subcategory": "2",
        "name": "Tomates a la argentinos",
        "price": "1150",
        "description": "Аромат дуэта свежих томатов и каперсов в бальзамическом соусе не оставит Вас равнодушным",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "8",
        "id_category": "1",
        "id_subcategory": "2",
        "name": "Beet-cheese",
        "price": "1500",
        "description": "Попробуйте наш наивкуснейший салат из запеченной свеклы с кусочками козьего сыра, заправленный горчичной заправкой.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "9",
        "id_category": "1",
        "id_subcategory": "2",
        "name": "Montana",
        "price": "1500",
        "description": "Аппетитная курочка холодного копчения в сырном кольце от нашего Шеф-повара приятно удивит Вас.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "10",
        "id_category": "1",
        "id_subcategory": "3",
        "name": "El pollo",
        "price": "1500",
        "description": "Наши повара выбрали для Вас самое сочное филе курочки, создав изумительный дуэт с запеченным перцем и заправили его экзотическим соусом Sweetchili",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "11",
        "id_category": "1",
        "id_subcategory": "3",
        "name": "Fish Red",
        "price": "2000",
        "description": "Ещё один наш теплый салат необычного приготовления из лосося в устричном соусе, подаётся с миксом салата",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "12",
        "id_category": "1",
        "id_subcategory": "3",
        "name": "Panasia",
        "price": "1900",
        "description": "Вы с первого вкуса полюбите наш сытный теплый салат из нежной говяжьей вырезки с в меру острым овощами.",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    },
    {
        "id": "13",
        "id_category": "1",
        "id_subcategory": "3",
        "name": "Campestre",
        "price": "2000",
        "description": "Наш фирменный теплый салат от Шефа, приготовленный на основе мяса, свежих грибов и нежной сливочной гауды, согреет Вас и унесёт в далёкий Буэнос-Айрес",
        "size": null,
        "id_alcohol": null,
        "id-country": null,
        "img": null
    }
]

У каждого объекта есть ключ id_subcategory. Вопрос: как мне правильно поступить, чтобы на выходе осталось только по одному объекту на каждый уникальный id_subcategory? (1,2 и 3)
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values(Object.fromEntries(arr.map(n => [ n.id_subcategory, n ])))

или

arr.filter((n, i, a) => n === a.find(m => m.id_subcategory === n.id_subcategory))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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