javascript - 如何获取迭代对象的值
问题描述
我在一个对象中有一个对象,当我想迭代这些对象时。我成功获得了密钥但没有获得价值。这是我的代码:
let oPlaystation = {
product: {
Artikelnummer: 15118903,
Fabrikantcode: 845784935,
Merk: "Sony",
Garantie: "2 jaar",
Garantietype: "Carry-in-garantie"
},
algemeen: {
platform: "Playstation 4",
Aanbevolen_voor_virtual_reality: false,
},
opslagcapaciteit: {
Totale_opslagcapaciteit: "1000 GB",
Werkgeheugen_uitbreidbaar: true,
Maximale_capaciteit_geheugenkaart: "8000 GB"
},
Bedrade_aansluitingen : {
Netwerkaansluiting: true,
HDMI_ansluiting: true,
USB_aansluiting: true,
USB_versie: 3.0,
Aantal_USB_poorten: 2
}
}
let output = "";
Object.keys(oPlaystation).forEach(section => {
output += '<h3>' + section + '</h3>';
output += '<dl class="product-specs">';
let features = Object.keys(oPlaystation[section]);
features.forEach(attr => {
output += '<div class="product-specs__list-item">';
output += '<dt class="product-specs__item-title">' + attr + '</dt>';
output += '<dd class="product-specs__item-spec">' + features[attr] + '</dd>';
output += '</div>';
});
output += '</dl>';
});
document.body.insertAdjacentHTML("beforeend", output);
现在我在<dd>
元素中得到 undefined 作为值。有谁知道如何解决这个问题?
解决方案
您需要先使用第一个键,然后再使用第二个键
oPlaystation[section][attr]
代替
features[attr]
var oPlaystation = {
product: {
Artikelnummer: 15118903,
Fabrikantcode: 845784935,
Merk: "Sony",
Garantie: "2 jaar",
Garantietype: "Carry-in-garantie"
},
algemeen: {
platform: "Playstation 4",
Aanbevolen_voor_virtual_reality: false,
},
opslagcapaciteit: {
Totale_opslagcapaciteit: "1000 GB",
Werkgeheugen_uitbreidbaar: true,
Maximale_capaciteit_geheugenkaart: "8000 GB"
},
Bedrade_aansluitingen : {
Netwerkaansluiting: true,
HDMI_ansluiting: true,
USB_aansluiting: true,
USB_versie: 3.0,
Aantal_USB_poorten: 2
}
},
output = '';
Object.keys(oPlaystation).forEach(section => {
output += '<h3>' + section + '</h3>';
output += '<dl class="product-specs">';
let features = Object.keys(oPlaystation[section]);
features.forEach(attr => {
output += '<div class="product-specs__list-item">';
output += '<dt class="product-specs__item-title">' + attr + '</dt>';
output += '<dd class="product-specs__item-spec">' + oPlaystation[section][attr] + '</dd>';
output += '</div>';
});
output += '</dl>';
});
document.body.innerHTML += output;
推荐阅读
- ms-access - 使用 FireDAC (JET) 删除 Microsoft Access DB 的表和外键
- amazon-web-services - 在我不认识的区域中创建的 AWS 资源
- c# - 在所有 API 上使用自定义启动原因 404 绕过身份验证
- google-apps-script - GAS onFormSubmit 触发器在第一个 console.log 之后返回
- listview - 在 Microsoft Dynamics 365 F&O 中,如何使用扩展创建即时搜索筛选器?
- java - Java中HTTP客户端的IOException
- java - 在 JSP 中使用复选框时出现索引顺序问题
- reactjs - 在基于 AWS 认证用户的反应导航中使用条件语句
- android - 如何从我在 Android 的服务中运行的 switch case 开始新的活动?
- azure - 如何在 Azure 上运行的 Asp Classic 应用程序上启用身份验证