使用splice()方法删除数组中的某一项时,会改变数组的长度值,则在删除下一项的时候,如果原本下一项正好是需要删除的项,则会漏掉此项,解决方法是,删除完一项后使遍历变量减一,即可:
$scope.persons=[
{name:"a",age:"0"},
{name:"b",age:"1"},
{name:"c",age:"2"},
{name:"d",age:"3"},
{name:"e",age:"4"}
];
$scope.action= function () {
for(var i=0;i<$scope.persons.length;i++){
if($scope.persons[i].name =="b" || $scope.persons[i].name == "c"){
$scope.persons.splice(i,1);
i--;
}
}
}