我有包含嵌套对象的javascript对象。我想使用'for in'循环迭代这些但是这会返回一个字符串而不是一个对象?
代码:
var myObject = {
myNestedObject : {
key1 : value 1
}
}
然后如果我循环:
for(theObject in myObject){
alert(typeof theObject);
}
这将返回字符串'myNestedObject',但不返回对象本身。
为什么?
答案 0 :(得分:6)
theObject
是属性键。你想要的可能是:
for(var key in obj){
var theObject = obj[key];
}
答案 1 :(得分:2)
这就是for...in
循环工作的方式。而是写:
for(prop in Myobject){
alert(Myobject[prop]);
}
答案 2 :(得分:1)
for...in
遍历对象的属性。
for(key in myObject){
var theObject = myObject[key]
//theObject = { key1: value 1 }
console.log(typeof theObject);
//"object"
}
答案 3 :(得分:0)
如果你只需要自己的属性,在你的情况下嵌套对象 - 不是继承的 - 你应该做
for(theObject in myObject){
if (myObject.hasOwnProperty(theObject)) {
alert(typeof myObject[theObject]);
}
}
如果你警告typeof theObject
会给你对象的类型...字符串 - 因为这是关键...而不是对象......但是alering myObject[theObject]
会导致{{ 1}}这是对象的类型。