Я попытался, как это, и это работает для объекта с одним свойством:Свести объект объектов
var foo = { foo: { foo: { foo: function(){ return x }}}};
function flattenObj(obj) {
var res;
for (var k in obj) {
res = obj[k];
while (k in res) {
res = res[k];
}
}
return res;
}
console.log(flattenObj(foo)); // function(){ return x }
Как я могу заставить его работать с этим объектом?
{ baz: 'baz', foo: { baz: 'baz', foo: function(){ return x }}};
Так она возвращает:
{ baz: 'baz', foo: function(){ return x }}
Edit:
var obj = {
a: 1,
b: 2,
obj: {
a: 1,
b: 2,
obj: {
a: 1,
b: 2,
obj: function(){ return x }
}
}
}
Что делать, если '{Foo: {бар: 'Баз'}}'? '{bar: 'baz'}'? – leaf
Только один объект рекурсивный, проверьте мое редактирование. – lokhura
Спасибо за ответы. Я принял его. – lokhura