nastya_zholudeva
@nastya_zholudeva

Как сформировать такой массив данных из выбранных чекбоксов?

пример тут
"filters": [
            {
                "type": "checkbox",
                "title": "Пол",
                "filterData": {
                    "variants": [
                        {
                            "key": 14,
                            "value": "Мужской"
                        },
                        {
                            "key": 15,
                            "value": "Женский"
                        }
                    ]
                },
                "filterId": 1
            },
{
                "type": "checkbox",
                "title": "num",
                "filterData": {
                    "variants": [
                        {
                            "key": 2,
                            "value": "345"
                        },
                        {
                            "key": 1,
                            "value": "123"
                        }
                    ]
                },
                "filterId": 2
            }
]

Пользователь выбирает несколько таких чекбоксов и нажимает кнопку "Выбрать". Как сформировать такой массив данных?
[
{ "filterId": 1, values: [14,15]},
{ "filterId": 2, values: [1]},
]


filters приходит через props из vuex
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Пользователь выбирает несколько таких чекбоксов и нажимает кнопку "Выбрать".

А зачем кнопка? Можно же сделать computed свойство, выбранные элементы будут доступны в любой момент (конечно, если вы не забыли связать данные с чекбоксами через v-model), как-то так:

selected() {
  return this.filters.map(n => ({
    filterId: n.filterId,
    values: n.filterData.variants.filter(m => m.checked).map(m => m.key),
  }));
},
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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