Javascript 为什么我的数组没有删除正确的记录
在本例中,我试图根据索引值删除记录,但为什么没有正确删除记录? 我添加了一个屏幕截图,试图删除21.png和coo.png,但再次删除后,我得到的是2a.png而不是cat.pngJavascript 为什么我的数组没有删除正确的记录,javascript,angularjs,Javascript,Angularjs,在本例中,我试图根据索引值删除记录,但为什么没有正确删除记录? 我添加了一个屏幕截图,试图删除21.png和coo.png,但再次删除后,我得到的是2a.png而不是cat.png $scope.remove = function (abc) { var newDataList = []; $scope.selectedAll = false; var newval; for (var i = 0; i < abc.length; i++) {
$scope.remove = function (abc) {
var newDataList = [];
$scope.selectedAll = false;
var newval;
for (var i = 0; i < abc.length; i++) {
if (abc[i].selected == true) {
var _filedata = $scope.Files.indexOf(abc[i])
$scope.Files.splice(_filedata, 1)
}
}
}
$scope.remove=函数(abc){
var newDataList=[];
$scope.selectedAll=false;
var newval;
对于(变量i=0;i
尝试反向迭代数组:
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
后,索引已更改) 使用拼接法,这可能会有所帮助。是的,这是一个完美的答案。