1
我無法弄清楚如何將平面對象與父數組變換爲實際的嵌套(樹)層次結構對象。它基本上都可以歸結爲以下問題:將平面變換爲嵌套對象
我怎麼能拒絕一個樣本對象,如
var sample = {
name: '1.1.1.1',
parents: [{
name: '1.1.1'
}, {
name: '1.1'
}, {
name: '1'
}]
};
...高效地爲以下結果:
var result = [{
name: '1',
children: [{
name: '1.1',
children: [{
name: '1.1.1',
children: [{
name: '1.1.1.1'
}]
}]
}]
}];
名稱是任意選擇和從理論上講,sample
可以具有無限的深度。
不幸的是,result
和children
需要是一個對象數組,因爲我的實際使用情況稍微複雜一點,它由多個對象組成。它爲manage hierarchical data in MongoDB模擬了最佳實踐。
任何幫助,非常感謝。
http://plnkr.co/edit/GGIV1I0WNFGkjqyUNEof?p=preview – redmallard
非常感謝您!我甚至可以用本地['reduce'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)實現去除對Underscore的依賴,因爲我只是需要支持IE9 + :) – bernhardw