Добавить опции для выбора, используя ключ объекта и значения в JavaScript? - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно перебрать следующий объект в javascript, чтобы заполнить опцию выбора:

{"options":{"116":{"pt":"116","en":"116"},"118":{"pt":"118","en":"118"}}}

Мой настоящий код такой:

for (var key in data) {
   if (data.hasOwnProperty(key)) {
      var opt = document.createElement('option');
      opt.innerHTML = data[key];
      opt.value = data[key];
      sel.appendChild(opt);
   }
}

Вышеприведенный цикл дает мне всеэлементов в массиве.Но то, что я хочу сделать, это просто выбрать значение клавиш «pt».Мой цикл должен вернуть только 116 и 118 с клавиш «pt».

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Вам просто нужно сделать data[key].pt:

var obj = {
  "options": {
    "116": {
      "pt": "116",
      "en": "116"
    },
    "118": {
      "pt": "118",
      "en": "118"
    }
  }
};
var data = obj.options;
var sel = document.getElementById('select');
for (var key in data) {
  if (data.hasOwnProperty(key)) {
    var opt = document.createElement('option');
    opt.innerHTML = data[key].pt;
    opt.value = data[key].pt;
    sel.appendChild(opt);
  }
}
<select id="select"></select>
0 голосов
/ 05 февраля 2019

Вы можете сделать что-то подобное, используя Object.values и forEach:

const data = {"options":{"116":{"pt":"116","en":"116"},"118":{"pt":"118","en":"118"}}}

const sel = document.getElementById('select');

const ptValues = Object.values(data.options)
                        .forEach(v => {
                            var opt = document.createElement('option');
                            opt.innerHTML = opt.value = v.pt
                            sel.appendChild(opt);
                          })
<select id="select"></select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...