#javascript #node.js #pug
#javascript #node.js #pug
Вопрос:
Я поддерживаю блок кода, но с очень небольшим знанием pug
файлов. Что было бы лучше всего получить только уникальные значения в выпадающем списке?
some_file.pug
div(class="col s6 input-field")
select(name="car_id")
each val, index in dropDownCars
if (dropDownCars.length > 0 amp;amp; selectedCar amp;amp; val.car_id == selectedCar)
option(value=val.car_id selected="selected") #{val.car_name}
else
option(value=val.car_id) #{val.car_name}
label Cars
div(class="col s4")
На данный момент я получаю дублированные названия автомобилей в моем выпадающем меню. Любая помощь будет оценена.
Комментарии:
1. Я предлагаю отфильтровать отдельные автомобили
dropDownCars
до того, как они будут переданы в этот шаблон
Ответ №1:
Как указывает @sawim, было бы лучше попытаться отфильтровать дубликаты в массиве, прежде чем передавать его в шаблон Pug. Однако, если это невозможно, вы можете сделать что-то вроде этого:
select(name='car_id')
- let uniqueNames = []
each car in dropDownCars
if (-1 === uniqueNames.indexOf(car.car_name))
- uniqueNames.push(car.car_name)
option(value= car.car_id, selected= (car.car_id === selectedCar)) #{car.car_name}
Это перебирает автомобили и отображает option
элемент только в том случае, если имя автомобиля не было замечено ранее. Это также упрощает логику добавления selected
атрибута к соответствующему option
, если есть выбранный автомобиль.