如何在JavaScript中操作对象结构

1 javascript

var obj = {
   skill:{
      eat:true,
      walk:true
   },
   address:{
      home:"where",
      company:"where"
   }
};
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式获得一项

tester.activate(obj[skill]);
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得所有物品?

Poi*_*nty 5

您可以使用以下内容遍历对象的属性for ... in:

for (var k in obj) {
  if (obj.hasOwnProperty(k)) {
    var value = obj[k];
    alert("property name is " + k + " value is " + value);
  }
}
Run Code Online (Sandbox Code Playgroud)

对"hasOwnProperty"函数的调用是为了防止这些代码迭代"obj"上存在的属性,这些属性实际上是从Object原型继承而来的. 有时你可能想要包括那些,但在这种情况下,过滤它们是安全的(我认为).(和@sdleihssirhc指出,如果你想成为真正的肯定,你可以使用Object.prototype.hasOwnProperty.call(obj, k))