dies sei angenommen, ist es, einige Daten, die ich in meinem AngularJS Ansicht (Niederländisch Sprache) veröffentlichen möchten:berechnen Kind Objektwerte und zeigen auf Mutter
$scope.data =
[
{
name: "actief",
value: null,
children:
[
{
name: "vast actief",
value: [20, 30, 40, 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
}
]
}
];
Um dieses Objekt in einer Liste auf meiner Ansicht zu veröffentlichen ich tun kann, so etwas wie dieses:
<ul ng-repeat="item in data">
<li>{{item.name}}</li>
<ul ng-repeat="child in item.children">
<li>{{ child.name }}</li>
<ul ng-repeat="value in child.value">
<li>{{ value }}</li>
</ul>
</ul>
</ul>
ich möchte, dass meine Eltern-Objekt {{ item name }}
ein Array mit der Summe der Kinder haben, zB der erste Elternteil dieses Array haben würde: [369, 395, 421, 687]
Ich habe versucht, diese Berechnung in meinem Controller zu tun (ich weiß, keine Logik in der Steuerung, aber es ist nur zum Testen)
for (var i = 0; i < $scope.data.length; i++){
$scope.data[i].value = [];
for (var j = 0; j < $scope.data[i].children.length; j++) {
if ($scope.data[i].children[j].value.length > 0) {
for (var k = 0; k < $scope.data[i].children[j].value.length; k++) {
console.log(typeof $scope.data[i].children[j].value[k]); // says number!
$scope.data[i].value[k] += $scope.data[i].children[j].value[k]; // But my array is NAN???
}
}
}
}
Es gibt 4 Positionen in meinem Elternwert-Array, aber alle von ihnen sind NaN
, was mache ich falsch?
Side Frage:
, weil ich die Looping meiner Meinung nach tun, ist nicht, dass es ein kürzerer Weg, um die Summen der Feldposition dort zu berechnen?
Sind Sie sicher? denn wenn ich 'var myArray = []; myArray + = 5' ich bekomme nur '5'. Aber wenn ich 'var myArray = []; meinArray + = 5; myArray + = 10' Ich bekomme '510'. Was ich sehe, ist, dass es die Zahlen nicht zählt, sondern sie beschlagnahmt. – Peter
Von meinem Verständnis Ihrer Frage aus, was Sie tun möchten, ist ein Wert im Array zu erhöhen, die die Syntax 'myArray [index] + = Wert 'hat. Wenn Sie also 'var myArray = [1,2,3]' haben und dem ersten Element '5' hinzufügen wollen, würden Sie' myArray [0] + = 5' machen. Beachten Sie die Verwendung des Index '0'. Die Syntax ohne den Index ('myArray + = 5') ist in diesem Fall nicht das, wonach Sie suchen. –
Sie haben Recht, und ich habe gewartet, bis ich meine vorherige Antwort bearbeiten konnte, weil ich das bemerkt habe! Wir werden es schaffen, vielen Dank! – Peter