Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中添加选项以使用对象的键和值进行选择?_Javascript_Loops_Object - Fatal编程技术网

在javascript中添加选项以使用对象的键和值进行选择?

在javascript中添加选项以使用对象的键和值进行选择?,javascript,loops,object,Javascript,Loops,Object,我需要在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[

我需要在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。

您可以使用和执行类似操作:

const data={options:{116:{pt:116,en:116},118:{pt:118,en:118}} const sel=document.getElementById'select'; const ptValues=Object.valuesdata.options .forEachv=>{ var opt=document.createElement'option'; opt.innerHTML=opt.value=v.pt sel.appendChildopt; } 您只需要执行数据[key].pt:

var obj={ 选项:{ 116: { pt:116, en:116 }, 118: { pt:118, en:118 } } }; var数据=对象选项; var sel=document.getElementById'select'; 用于var键入数据{ 如果data.hasOwnPropertykey{ var opt=document.createElement'option'; opt.innerHTML=data[key].pt; opt.value=data[key].pt; sel.appendChildopt; } }
因此,数据是选项对象?这不是最佳解决方案,因为这是添加额外的循环以过滤pt值。相反,您可以在创建选项时在同一个循环中执行此操作。我键入了选项代码并进行了更新:我喜欢这样,因为它将原始问题更改为最小值。