为什么我的下面的代码留下一条记录?如果我的 Id=40,它应该从 vm.events 中删除所有 3 条记录
vm.events = [
{
"studentId": "40",
"studentName": "P Arjun",
},
{
"studentId": "40",
"studentName": "P Arjun",
},
{
"studentId": "40",
"studentName": "P Arjun",
}
];
vm.setSelectedStudent = function (Id) {
vm.stdListCope = angular.copy(vm.events);
for (var i in vm.stdListCope) {
if (vm.stdListCope[i]['studentId'] == Id) {
vm.stdListCope.splice(i, 1);
}
}
};
最佳答案
您的代码中存在错误。
当它运行i=0
时,vm.stdListCope.splice(0, 1);
将数组切片为具有单个条目的数组。
因此,在 i=0
之后,vm.stdListCope
具有 [{"studentId": "40", "studentName": "P Arjun", }]
但是,当循环运行 i=1
或 i =2
时,vm.stdListCope[i]['studentId'] == Id
不会为 true,因为没有对应于索引 i=1
和 i=2
的条目,因为它的长度 = 1。
这就是为什么您只剩下 1 个条目。
关于javascript - 拼接留下记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35942325/