【发布时间】:2014-01-05 03:16:04
【问题描述】:
我试过这样,它适用于具有一个属性的对象:
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 }}
编辑:
var obj = {
a: 1,
b: 2,
obj: {
a: 1,
b: 2,
obj: {
a: 1,
b: 2,
obj: function(){ return x }
}
}
}
【问题讨论】:
-
如果
{ foo: { bar: 'baz' } }怎么办?{ bar: 'baz' }? -
只有一个对象是递归的,检查我的编辑。
-
谢谢你们的回答。我接受了一个。
标签: javascript object flatten