@Nikita_Migushev

Как получить значения свойств объекта при помощи for in loop?

Есть функция, которая в результате выдает объект с датами

Задача: нужно вывести даты в качестве select options.

делаю такую конструкцию:

var deliveryDates = document.getElementById("deliveryDateSel")

var deliveryDatesObj = getDeliveryDates();

for (var prop in deliveryDatesObj) {
       
             deliveryDates.options[deliveryDates.options.length] = new Option(prop, prop);
         }


Но она выдает названия свойств, а не значения свойств.

5dcfc9fa2d38c361184975.jpeg

Вопрос: Как получить именно значения свойств?

Прототип здесь: JS FIDDLE
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Цикл for in из объекта извлекает ключи, а не значения. Вам нужно используя этот ключ, получить значение из итерируемого объекта, делается это так
for (var prop in deliveryDatesObj) {
    var value = deliveryDatesObj[prop];
    ///......
}

теперь вам нужно создать на основе ключа/значения объект Option, его конструктор принимает 4 параметра, нам интересны два первых - text и value. value в вашем случае должен содержать ключ объекта, а text его значение (которое мы получили выше).

Итого
for (var prop in deliveryDatesObj) {
    var value = deliveryDatesObj[prop];
    deliveryDates.options[deliveryDates.options.length] = new Option(value, prop );
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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