$scope.clearCompleted = function()
{
angular.forEach($scope.todos, function(todo, i)
{
if(todo.done)
{
$scope.todos.splice(i, 1);
}
});
if($scope.todos.length == 0)
{
$scope.isEmpty = true;
}
}
To jest mój kod, aby usunąć „done” todos z tablicy, ale gdy dwa todos po drugim są usuwane, usuwa tylko drugi. Myślę, że dzieje się tak, ponieważ funkcja splicingu resetuje się i zwraca tablicę złożoną z połączeń.JavaScript funkcja splice wewnątrz pętli foreach zmniejsza indeks
Tak, '.splice()' mutuje tablicy. To musi być uwzględnione, jeśli korzystasz z iteracji forward. –