[英]Javascript - removing an element from array
我在网页上的表格中显示来自arraylist的元素。 我想确保一旦用户按下“删除数据”,表中的元素将立即删除,因此用户不必刷新并等待查看新表。 所以我目前正在通过从arraylist中删除元素来做到这一点,下面是代码:
$scope.list= function(Id) {
var position = $scope.list.indexOf(fooCollection.findElementById({Id:Id}));
fooCollection.delete({Id:Id});
if (position>-1) {
$scope.list.splice(position,1);
}
$location.path('/list');
};
但是我的位置始终是-1,所以无论我删除哪个元素,总是从列表中删除最后一项。
我发现很奇怪,因为我们一开始就在两个不同的列表上进行操作,所以我假设您正在复制初始列表。 这使我能够重现您的错误。 在下一行中,您尝试查找列表中不存在的对象。
var position = $scope.list.indexOf(fooCollection.findElementById({Id:Id}));
尽管我们谈论的是相同的内容,但是这两个对象并不相同,原因是:
indexOf使用严格相等(===或三重相等运算符使用的相同方法)将searchElement与Array的元素进行比较。
快速修复它意味着遍历$ scope.list并找出哪个元素实际上具有正在传递的ID。
您可以使用需要两个参数的javascript的splice方法
arrayObject.splice(param1, param2);
param1->从此索引元素开始删除
param2->不会删除任何元素
就像如果您只想删除第一个元素并且您的数组对象是arrayObject,那么我们可以编写如下代码
arrayObject.splice(0, 1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.