gpt4 book ai didi

javascript - 使用 .splice 从数组中删除一个项目是删除多个对象

转载 作者:行者123 更新时间:2023-11-30 11:25:05 25 4
gpt4 key购买 nike

我创建了一个页面,用户可以在其中选择/取消选择员工。我正在使用 .push 将这些员工添加到数组 users 中。我还使用 .splice 从数组中删除未选中的项目。目前,取消选中最后选中的项目工作正常,但是,如果我选择多个项目并取消选中 View 中显示的第一个项目,它将从数组中删除所有项目。

这是 HTML:

<div ng-app="myApp">
<div ng-controller="MainCtrl">
<table>
<tr ng-repeat="user in users">
<td><input type="checkbox" ng-model="checked" ng-change="addremoveuser(checked, user.ID)"><td>
<td>{{user.Title}}</td>
<td>{{user.FirstName}}</td>
<td>{{user.LastName}}</td>
</tr>
</table>
</div>
</div>

这是JS:

var app = angular.module('myApp', ['ngSanitize']);
app.controller('MainCtrl', function($scope, $http, $q){
var users = [];
$scope.addremoveuser = function (checked, id) {
if (checked) {
console.log("user selected", id);
users.push(id)
console.log("if test", users);
}
else {
console.log("user unselected", id);
var index = users.indexOf(id);
users.splice(index);
console.log("else test", users);
}
};
});

如何解决此问题以仅删除未选中的项目?

最佳答案

users.splice(index);

应该是:

users.splice(index, 1);

查看文档:

Array.splice()

另外,请注意 id 是什么。 它是数组中名称不正确的元素还是元素的实际 id?因为如果它是数组中元素的 id,则不需要 indexOf(id)

关于javascript - 使用 .splice 从数组中删除一个项目是删除多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com