我需要在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'键的值。 我的循环必须从“ pt”键仅返回116和118。
答案 0 :(得分:3)
您可以使用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>
答案 1 :(得分:3)
您只需要执行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>