Javascript 忽略数组中的公共记录,并设置数组的不匹配记录的属性
这是我的两个阵列:Javascript 忽略数组中的公共记录,并设置数组的不匹配记录的属性,javascript,angularjs,Javascript,Angularjs,这是我的两个阵列: $scope.Array1 = { "data": [ { "name": "Abc", "selected": false }, { "name": "Pqr", "selected": false }, { "name": "Lmn", "selected": false }, { "name": "Ggg", "se
$scope.Array1 =
{
"data": [
{
"name": "Abc",
"selected": false
},
{
"name": "Pqr",
"selected": false
},
{
"name": "Lmn",
"selected": false
},
{
"name": "Ggg",
"selected": false
}
],
}
$scope.obj.Array2 = ["Abc"];
现在,当我有两种模式,即添加模式和编辑模式时,因此当有添加模式时,我将$scope.obj.Array2设置为未定义,因此在那时,我希望为Array1的所有记录将selected属性设置为true
但现在当我使用编辑模式时,我想忽略Array1中的匹配记录,因此我只想将Pqr、Lmn和GGG selected属性设置为true。
因此,基本上我是从Array1执行全部检查和取消检查,而在编辑模式下,我想忽略检查/取消检查的常见记录
代码:
angular.forEach($scope.Array1, function (item, index) {
item.selected = $scope.checkAllFlag; //This will be either true of false
});
根据您提供的数据,您可以尝试以下方法:
angular.forEach($scope.Array1, function (item, index) {
if(!$scope.obj.Array2 || !$scope.obj.Array2[item.name])
item.selected = $scope.checkAllFlag;
});
但在添加模式下,我的$scope.obj.Array2将因您对我的帮助而被取消。抱歉,在编辑模式下,我也可以选中/取消选中匹配记录。在编辑模式下,此条件变为真$scope.obj.Array2这就是为什么我仍然能够选中/取消选中匹配记录