我想要将一个只包含字符串的扁平化数组和一个数组组合并分组。
我的数组看起来像这样:
var array = [
["MotherNode", "Node1", "ChildNode1", "ChildOfChildNode1"],
["MotherNode", "Node1", "ChildNode2", "ChildOfChildNode2"],
["MotherNode", "Node2", "ChildNode3", "ChildOfChildNode3"],
["MotherNode", "Node2", "ChildNode3", "ChildOfChildNode4"],
["MotherNode", "Node3", "ChildNode4", "ChildOfChildNode5"],
["MotherNode", "Node3", "ChildNode4", "ChildOfChildNode5"]
]
我正在使用JavaScript / AngularJS进行操作,到目前为止,我已经确定最佳解决方案可能是使用underscore.js的groupBy/combine方法。然而,我能找到的大多数示例都是处理对象数组,它们可以使用值的键将它们组合在一起。而我还不够熟练,无法自己解决这个问题。
我正在处理的数组可能有数百个值,结果数组可能会有5-10层深度。
通过解析上面的数组,我想要的结果大致如下:
var result= {
"MotherNode": [{
"Node1":[{
"ChildNode1":"ChildOfChildNode1"
},{
"ChildNode2":"ChildOfChildNode2"
},{
"Node2":[{
"ChildNode3":["ChildOfChildNode3","ChildOfChildNode4"]
},{
"Node3":[{
"ChildNode4":"ChildOfChildNode5"
}
]
}
有没有人知道如何实现这个?我完全没有任何想法。
array
不能有索引,而且你的result
中最内层的对象没有任何键。 - Bergi_.groupByMulti(array, [0, 1, 2])
。也许可以添加一个额外的回调函数,将最内层的值映射到您想要的数组。 - Bergi