Ваш код может быть сильно сокращен до одной строки:
const mode = ['tube', 'bus', 'overground'].filter(key => e.target.elements[key].checked).join(',');
Сначала мы создаем массив с именами элементов, которые вы хотите взять, фильтруйте из тех, которые не являютсяпроверил и скомпонуем наши последние строки со всеми оставшимися именами, объединенными с ,
, используя join
.
Теперь вы можете сохранить переменную mode
в своем состоянии для дальнейшего использования.используйте в своем рендере.
Рабочая демонстрация:
function test(e) {
const mode = ['tube', 'bus', 'overground'].filter(key => e.target.elements[key].checked).join(',');
console.log('Mode : ', mode);
return mode;
}
test({ target: { elements: {
tube: { checked: true },
bus: { checked: false },
overground: { checked: true }
} } })
test({ target: { elements: {
tube: { checked: true },
bus: { checked: true },
overground: { checked: true }
} } })
test({ target: { elements: {
tube: { checked: true },
bus: { checked: true },
overground: { checked: false }
} } })
test({ target: { elements: {
tube: { checked: false },
bus: { checked: false },
overground: { checked: false }
} } })