Ich habe dieses Problem algoritme, möchte ich überprüfen, ob ein Objekt bereits in meinem Array vor dem Hinzufügen vorhanden ist.Wie kann überprüft werden, ob ein Objekt bereits in einem Array vorhanden ist, bevor es hinzugefügt wird?
Ich habe viele verschiedene Ansätze (indexOf, Filter ...) versucht, und mein letzter Versuch ist mit einem angular.foreach.
Das Problem ist mein $ scope.newJoin bleibt immer leer. Ich verstand, warum, es ist, weil das, wenn nie gelesen wird, wegen der 0 Größe meines $ scope.newJoin, aber ich weiß nicht, wie dies herauszufinden ...
$ scope.newJoinTMP besteht aus: 6 Objekten, in denen jeweils ein timePosted Attribut (für den Vergleich dieser verschiedenen Array-Objekte verwendet).
$ scope.newJoin ist ein leeres Array. Ich möchte es mit den Objekten innerhalb $ scope.newJoinTMP aber mit der Sicherheit zu haben einmal jedes Objekte, und nicht doppelt so viel ($ scope.newJoinTMP kann doppelte Objekte haben, aber $ scope.newJoin müssen t).
angular.forEach($scope.newJoinTMP, function(item)
{
angular.forEach($scope.newJoin, function(item2)
{
if (item.timePosted === item2.timePosted)
{
//snap.val().splice(snap.val().pop(item));
console.log("pop");
}
else
{
$scope.newJoin.push(item);
console.log("newJoin :", $scope.newJoin);
}
});
});
Oooh, das ist ein Fehler, ich immer getan, danke, es zu spitz ... Wie man einen Push in einem forEach ersetzen? Mit einem einfachen Indexwert, den ich in jeder Schleife erhöhen? Wie folgt: $ scope.newJoin [i] = item? – Memphis
@memphis: Schau dir meinen Code nochmal an (er enthält bereits eine Antwort;)) –