Попробуйте перебрать массив в обратном направлении:
for (var i = abc.length - 1; i >= 0; i--) {
if (abc[i].selected == true) {
var _filedata = $scope.Files.indexOf(abc[i])
$scope.Files.splice(_filedata, 1)
}
}
Когда вы выполняете итерацию в порядке возрастания и изменяете массив с помощью splice
, но ваш цикл for не знает об этом, а переменная i
содержит индекс исходного массива (хотя после вызова splice
индексы изменились) ,