Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 忽略数组中的公共记录,并设置数组的不匹配记录的属性_Javascript_Angularjs - Fatal编程技术网

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这就是为什么我仍然能够选中/取消选中匹配记录