我有一个对象,里面有我需要访问的其他对象。我该怎么做?
var obj = {a: {b: 1}} //I need to have access to b.
对于for循环,只返回“a”。问题是我不是试图在对象中获取字符串,而是在对象内部获取对象。
var obj = {
a: {r: "why cant i access"},
}
for(var o in obj){
document.getElementById("div").innerHTML = o.r;
}
<div id="div"></div>
答案 0 :(得分:1)
如果您的问题中提到的对象结构是固定的,则可以循环两次以获取内部对象。
var p = {a: {b: 1}}
for (var key in p) {
for (var k in p[key]) {
console.log(k + " -> " + p[key][k] );
}
}
答案 1 :(得分:1)
虽然Piyush发布的答案适用于您提供的对象,但它不是通用的,不适用于所有类型的对象。这是一个读取任何对象属性的脚本:
var obj = {a: {b:'2'}};
var writeProperties = function (obj) {
for(var prop in obj) {
console.log("Property: ",prop,"Property Type:",typeof(obj[prop]));
if(typeof(obj[prop]) == 'object') {
writeProperties(obj[prop]);
} else {
console.log(prop + ':' + obj[prop]);
}
}
}
writeProperties(obj);