Ich habe zwei verschiedene Arrays, eines hält categories
, während das andere pages
hält.Was ist der richtige Weg, um eine Eigenschaft bestimmter Elemente aus einem anderen Array zu einem Objekt hinzuzufügen
Kategorien Array:
$scope.categories = [{
id: 1,
name: "Test category"
}];
Seiten Array:
$scope.pages = [{
id: 1,
name: "Test page",
category: 1
}];
Ich mag würde alle verknüpften Seiten seiner Kategorie hinzuzufügen. Dies kann erreicht werden, indem Sie wissen, ob die category
-Eigenschaft für eine Seite der id
einer Kategorie entspricht.
Im Moment habe ich eine Funktion, die
function getPagesById(categoryId) {
var tmp = [];
for (var i = $scope.pages.length - 1; i >= 0; i--) {
if($scope.pages[i].category == categoryId) {
tmp.push($scope.pages[i]);
}
};
return tmp;
}
function mergePages() {
var tmp = $scope.categories;
for (var i = tmp.length - 1; i >= 0; i--) {
tmp[i].pages = getPagesById(tmp[i].id);
};
return tmp;
}
$scope.categories = mergePages();
Ist dies die richtige Winkel Art und Weise Schleifen durch dies zu erreichen?
Die Lösung, die Sie vorschlagen, funktioniert, oder? –
Ja, es ist mehr "Ich glaube nicht, dass ich es am besten mache" –