javascript - 拼接留下记录

标签 javascript angularjs

为什么我的下面的代码留下一条记录?如果我的 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=1i =2 时,vm.stdListCope[i]['studentId'] == Id 不会为 true,因为没有对应于索引 i=1i=2 的条目,因为它的长度 = 1。

这就是为什么您只剩下 1 个条目。

关于javascript - 拼接留下记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35942325/

相关文章:

html - 如何在 angular.js 中应用 css

css - 如何在富文本编辑器中编辑ol标签

javascript - 使用纯 angularjs 的 Accordion ,无需 css

javascript - 在 django 模板 forloop 中使用时选择 javascript 中的按钮

javascript - 带有 angularjs 的有效输入掩码(ui-mask)

javascript - 使用 Ionic 3 从 JSON 数据筛选器的搜索栏

javascript - 从 javascript 调用 python FUNCTION

javascript - 如何使用 Promise 返回从递归 AJAX 调用构建的集合?

javascript - 纸质工具提示未显示

javascript - AngularJS - 接收和下载 CSV