Ich habe ein neues Problem auf Javascript/Angular und ich habe noch keine Lösung gefunden.Javascript/Angular ändert meine konstante Variable auch wenn ich ihn nicht nach
var listPlayers = $rootScope.Party.players;
$rootScope.Party.order = $scope.randomTeam(listPlayers);
Dies ist eine Funktion, wird die Reihenfolge der Spieler zufällig
$scope.randomTeam = function(players){
var team = players;
var order = [];
var index = team.length;
l = team.length;
for (var i = 0; i < l; i++) {
var alea = randomNumber(0,index-1);
order.push(team[alea]);
team.splice(alea,1);
index--;
}
return order;
}
Spielerliste sieht wie folgt aus:
$rootScope.Party = {
players: [
{name:'John', id:1},
{name:'Peter', id:2},
{name:'Daniel', id:3},
],
order: [],
}
Am Ende:
$rootScope.Party = {
players: [],
order: [{name:'Peter', id:1},
{name:'Peter', id:2},
{name:'John', id:3},]
}
Meine "Spieler" -Liste wurde leer und ich weiß nicht ow warum
UND sogar dachte ich nicht meine $ rootScope.Party.players ändern, die Funktion verwalten, um die Tabelle zu leeren und $ rootScope.Party.players ist leer am Ende der Funktion. Das erregt mich wirklich, weil ich es in eine andere Variable lege und diese Variable als Parameter für die Funktion verwende. Standard hält alte Referenzen
ofc. Sie machen. Sie weisen einem Team zu, dass es auf Ihre Spieler zeigt und spleißt es dann in einer Schleife. Das Array wird nach Referenz und nicht nach Wert an eine Methode übergeben. –
Okay, ich wusste nicht, Arrays werden mit Verweis übergeben, ich dachte immer, es war nur der Wert wie ein neues Objekt. Vielen Dank! –