1
我有一個數據結構是這樣的:拼合分層數據
{
name: 'test',
config: { ... },
prev: {
name: 'test1.1',
config: { ... },
prev: {
name: 'test1.1.1',
config: { ... },
prev: {
name: 'test1.1.1.1',
config: { ... },
prev: undefined
}
}
}
}
該結構可以包含「分組」對象內的任何數量的遞歸但相同的結構。
我想提取每個孩子的'name'屬性。我怎樣才能拉平這個用下劃線產生像這樣一個結果:
['test', 'test1.1', 'test1.1.1', 'test1.1.1.1']
這將是更大的,如果平坦化過程可能會返回類似
[
{name: 'test', config: { ... }},
{name: 'test1.1', config: { ... }},
{name: 'test1.1.1', config: { ... }},
{name: 'test1.1.1.1', config: { ... }}
]
我目前的解決辦法是這樣的(這是不,最佳我想用一個_.chain產生這種):
var _self = {
flatten: function (obj) {
var map = [];
return _self.flattenRecurse(obj, map);
},
flattenRecurse: function (obj, map) {
map.push({name: obj.name, config: obj.config});
if (obj.prev) {
_self.flattenRecurse(obj.prev, map);
}
}
}
var flattened = _self.flatten(data);
這實際上是相當小。不要以爲我可以用下劃線來保存任何代碼行......謝謝。歡迎來到我們的網站: – 2015-02-11 12:13:44
@ØysteinAmundsen;)。 – 2015-02-11 12:14:41