您正在寻找
for...in循环:
for (var key in foo){ if (key == "child") // do something...}请注意,
for...in循环将遍历任何可枚举的属性,包括那些添加到对象原型的属性。为了避免作用于这些属性,可以使用
hasOwnProperty方法检查该属性是否仅属于该对象:
for (var key in foo){ if (!foo.hasOwnProperty(key)) continue; // skip this property if (key == "child") // do something...}递归执行循环就像编写递归函数一样简单:
// This function handles arrays and objectsfunction eachRecursive(obj){ for (var k in obj) { if (typeof obj[k] == "object" && obj[k] !== null) eachRecursive(obj[k]); else // do something... }}


