我正在使用angularJS。我的$ scope范围内有一些数据。我想要完成的是计算子对象节点的值并将其添加到父对象节点上。
我已经制作了一些代码而且它只能用于最后父母
$scope.data =
[
{
name: "active",
value: null,
children:
[
{
name: "vast actief",
value: null,
children:
[
{
name: "gebouwen",
value: [13, 540, 195, 200],
children: null
},
{
name: "tereinen",
value: [25, 20, 25, 50],
children: null
},
]
},
{
name: "vlottend actief",
value: [215, 230, 245, 500],
children: null
},
{
name: "bewegend actief",
value: [134, 135, 136, 137],
children: null
}
]
},
{
name: "stilstaand",
value: null,
children:
[
{
name: "vast stilstaand",
value: [2000, 3000, 4000, 5000],
children: null
},
{
name: "vlottend stilstaand",
value: [2150, 2300, 2450, 5000],
children: null
},
{
name: "bewegend stilstaand",
value: [1340, 1350, 1360, 1370],
children: null
}
]
}
];
这是我创建的代码。使用此代码,它将循环直到children
中的null
属性,然后它将查看是否存在数据属性,如果有,它将计算其父数组的相同位置上的值。
for (var i = 0; i < $scope.labels.length; i++){
var label = $scope.labels[i];
calcParent(label);
}
function calcParent(label) {
if (label.children != null) {
for (var j = 0; j < label.children.length; j++) {
if (label.children[j].data) {
if (!label.data){
label.data = [];
}
for (var k = 0; k < label.children[j].data.length; k++) {
if (!label.data[k]) {
label.data[k] = 0;
}
label.data[k] += label.children[j].data[k];
}
} else {
var parent = label.children[j];
calcParent(label.children[j]);
}
}
}
}
我面临的问题是,它只对最后父母进行计算,以上所有父母都不会看到他们的孩子价值观,因为他们并不感谢然而。
我需要先将某些东西放在树上然后再次上升。我怎样才能做到这一点。
所以我做了一个傻瓜:Plunker,但现在我失去了它......它适用于掠夺者。
为了给你一个想法,在我的应用程序&#34;活跃&#34;只计算&#34; vlottend actief&#34; &安培; &#34; bewegend actief&#34;和 not &#34;广大的暴力&#34;。
&#34;巨大的暴力&#34;只计算他的孩子&tereinen&#34;和不&#34; gebouwen&#34;。
我刚刚复制了我的代码,所以它非常奇怪,它在plunker中工作。