如果一个键匹配,如何删除数组元素
How to remove array element if one key match?
基本上它的数据剑道网格默认数据的来源是selVal,如果selVal中的任何键与dtoVal匹配,我想删除所有内容从selVa,是否可以用下面的代码实现它不从数组中删除selVal元素。知道吗?
ctrl.js
$scope.handleControlOwnerCancel = function(){
this.ctrlOwnerModal.close();
var dtoVal = $scope.controlDTO.controlOwners;
var selVal = $scope.selectedOwners;
for (var i = 0; i < dtoVal.length; i++) {
for (var j=0; j<selVal.length; j++) {
if (dtoVal[i].workerKey !== selVal[j].workerKey) {
$scope.selectedOwners = $scope.controlDTO.controlOwners;
controlOwnersDataSource();
}
}
}
};
最好使用angular.forEach
,而不是使用for
循环。你还说
如果selval中的任何键与我要删除的dtoVal匹配selVa 的一切
但在循环内部,您正在使用!==
进行检查。我不知道哪一个正是你的要求。但你可以尝试这样做:
$scope.handleControlOwnerCancel = function(){
this.ctrlOwnerModal.close();
//var dtoVal = $scope.controlDTO.controlOwners;
//var selVal = $scope.selectedOwners;
var match = 0;
angular.forEach($scope.selectedOwners, function(val, key){
angular.forEach($scope.controlDTO.controlOwners, function(val2, key2){
if(val.workerKey==val2.workerKey){
match++;
}
})
})
if(match>0){
$scope.selectedOwners = $scope.controlDTO.controlOwners;
controlOwnersDataSource();
}
};
试试这个
$scope.handleControlOwnerCancel = function(){
this.ctrlOwnerModal.close();
var dtoVal = $scope.controlDTO.controlOwners;
var selVal = $scope.selectedOwners;
var selValCopy = angular.copy(selVal);
for (var i=dtoVal.length-1; i>=0; i--) {
for (var j=selVal.length-1; j>=0; j--) {
if (dtoVal[i].workerKey === selVal[j].workerKey) {
selValCopy.splice(j, 1);
} else {
$scope.selectedOwners = $scope.controlDTO.controlOwners;
controlOwnersDataSource();
}
}
}
selVal = selValCopy;
};
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- 从 DOM 中删除/删除 Javascript 用户定义的数组
- 命名函数“;删除“..删除是一个保留字
- 使用具有多个参数的猫鼬删除/删除
- 删除/删除 HTML 页面中的“:” 冒号
- 滚动条从何而来,如何删除它
- 如何删除/删除Firebase上的节点
- 我想,当我按下删除按钮删除删除按钮所代表的元素时
- 主干:查看删除/删除
- 删除/删除部分隐藏字段值的按钮单击
- Javascript从数据库中删除/删除表行
- 使用jQuery从HTML表中删除(删除)表行
- 删除删除ng网格中最后一行的功能
- 如何通过具有数组行的第一项的值来删除/删除 javascript 数组中的行