рекурсивный обход дерева
by dmelnik
JavaScript
var obj = {
field: 'obj string',
childs: {
a: {
field: 'a string',
childs: {
a1: {
field: 'a1 string'
},
a2: {
field: 'a2 string'
},
a3: {
field: 'a3 string'
}
}
},
b: {
field: 'b string',
childs: {
b1: {
field: 'b1 string'
},
b2: {
field: 'b2 string'
},
b3: {
field: 'b3 string',
childs: {
b31: {
field: 'b31 string'
},
b32: {
field: 'b32 string'
},
b33: {
field: 'b33 string'
}
}
}
}
},
c: {
field: 'c string',
childs: {
c1: {
field: 'c1 string'
},
c2: {
field: 'c2 string'
},
c3: {
field: 'c3 string'
}
}
}
}
};
var riba = function(parent, name) {
var result = null;
var foo = function(parent, name) {
if (parent.childs && typeof parent === 'object') {
for (var i in parent.childs) {
console.count();
console.log('Смотрим дочерний элемент:', i);
if (name === i) {
result = parent.childs[i];
console.log('Урра нашли!');
console.log('Теперь бы всплыть...');
break;
}
else {
...