Ich habe eine Reihe von Spielern, jeder Spieler ist ein Objekt, das eine Reihe von Eigenschaften hat, einer ist "Tore".Elemente aus einem Array basierend auf Eigenschaftswerten abrufen (AngularJS)
var players = [
{
"id":"4634",
"name":"A. Turan",
"number":"0",
"age":"28",
"position":"M",
"goals":"1"
},
{
"id":"155410",
"name":"H. Çalhano?lu",
"number":"0",
"age":"21",
"position":"A",
"goals":"0"
},
{
"id":"4788",
"name":"B. Y?lmaz",
"number":"0",
"age":"30",
"position":"A",
"goals":"2",
}
]
Ich habe eine Funktion, um durch das Array geschrieben und jedes Element drücken, das mehr als ‚0‘ Ziele zu einem Array hat, topScorers
. Wie so:
$scope.topScorerSearch = function() {
var topScorers = [];
$scope.teamDetails.squad.forEach(function(o) {
if (o.goals > 0) {
topScorers.push(o)
}
});
return topScorers;
}
Mit der Funktion als {{topScorerSearch()}}
genannt.
Dies gibt nur Spieler zurück, die ein Tor erzielt haben. Perfekt.
Allerdings, ich möchte dies auf andere Eigenschaften ausführen, die in viel Wiederholungscode führen wird. Wie kann ich dies zu einer allgemeinen Funktion machen, die auf verschiedenen Eigenschaften ausgeführt werden kann?
Ich habe versucht, einschließlich der 'Stütze' Parameter, aber es hat nicht funktioniert:
$scope.topScorerSearch = function(prop) {
var topScorers = [];
$scope.teamDetails.squad.forEach(function(o) {
if (o.prop > 0) {
topScorers.push(o)
}
});
return topScorers;
}
... und rief die Funktion wie folgt aus:
{{topScorerSearch(goals)}}
Warum funktioniert diese Arbeit ? Wo gehe ich falsch?
Sie sollten die Antwort akzeptieren, die das Problem löst, damit andere sehen können, wie es gelöst wird (auch @Sidriel bekommt ihre Punkte). – shaunhusain
Ich wollte ... Es war nur 3 Minuten her, gib mir eine Sekunde :) – Paulos3000
Geduld ist nicht mein Ding;) – shaunhusain