JS-遍历对象
JS- Traverse object
我有一个 javascript 对象,它具有嵌套对象作为属性。我想遍历这个 javascript 对象,以获取对象内部每个对象的所有属性的列表。
我编写了一个函数来执行此操作,但由于某种原因,当我 运行 该函数时,我得到了 0 的无限循环。有谁知道这个问题的原因和解决方法吗?
var test = {a: {b: { c: 'value '}}};
var traverse = function(object){
for (var property in object) {
if (object.hasOwnProperty(property)) {
console.log(property);
traverse(object[property])
}else {
console.log('None');
break;
}
}
}
traverse(test);
你在末尾有一个字符串,这个字符串被分隔成一个索引为零的单个字符。从此字符串中,获取位置零处的字符,并使用单个字符再次调用递归。
key value comment
----- ------------------- -----------
a {
b: {
c: "value "
}
}
b {
c: "value "
}
c "value "
0 "v"
0 "v"
0 "v" and so on
此字符的索引为零,依此类推。
为了防止这种习惯,您可以检查 onyl truthy 值(防止 null
)和要遍历的对象类型。
var test = { a: { b: { c: 'value ' } } };
var traverse = function (object) {
for (var property in object) {
if (object.hasOwnProperty(property)) {
console.log(property);
if (object[property] && typeof object[property] === 'object') {
traverse(object[property]);
}
} else {
console.log('None');
}
}
}
traverse(test);
我有一个 javascript 对象,它具有嵌套对象作为属性。我想遍历这个 javascript 对象,以获取对象内部每个对象的所有属性的列表。
我编写了一个函数来执行此操作,但由于某种原因,当我 运行 该函数时,我得到了 0 的无限循环。有谁知道这个问题的原因和解决方法吗?
var test = {a: {b: { c: 'value '}}};
var traverse = function(object){
for (var property in object) {
if (object.hasOwnProperty(property)) {
console.log(property);
traverse(object[property])
}else {
console.log('None');
break;
}
}
}
traverse(test);
你在末尾有一个字符串,这个字符串被分隔成一个索引为零的单个字符。从此字符串中,获取位置零处的字符,并使用单个字符再次调用递归。
key value comment ----- ------------------- ----------- a { b: { c: "value " } } b { c: "value " } c "value " 0 "v" 0 "v" 0 "v" and so on
此字符的索引为零,依此类推。
为了防止这种习惯,您可以检查 onyl truthy 值(防止 null
)和要遍历的对象类型。
var test = { a: { b: { c: 'value ' } } };
var traverse = function (object) {
for (var property in object) {
if (object.hasOwnProperty(property)) {
console.log(property);
if (object[property] && typeof object[property] === 'object') {
traverse(object[property]);
}
} else {
console.log('None');
}
}
}
traverse(test);