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_Arrays - Fatal编程技术网

Javascript 如果条件存在,如何推入新阵列?

Javascript 如果条件存在,如何推入新阵列?,javascript,angularjs,arrays,Javascript,Angularjs,Arrays,我有两个数组,如果条件满足,我必须将$scope.checkData中匹配的对象推入新数组。我必须从$scope.checkData中获取函数中的“val”,并签入$scope.postData Javascript: $scope.postData= [ { "pid": 1, "id": 1, "status": 1 }, { "pid": 1, "id": 2, "status": 0 }, { "pid": 1, "id": 3, "status":

我有两个数组,如果条件满足,我必须将$scope.checkData中匹配的对象推入新数组。我必须从$scope.checkData中获取函数中的“val”,并签入$scope.postData

Javascript:

  $scope.postData= [
     { "pid": 1, "id": 1, "status": 1 }, 
     { "pid": 1, "id": 2, "status": 0 }, 
     { "pid": 1, "id": 3, "status": 1 }, 
     { "pid": 1, "id": 4, "status": 1 }, 
     { "pid": 1, "id": 5, "status": 0 }, 
     { "pid": 1, "id": 6, "status": 1 }, 
     { "pid": 1, "id": 7, "status": 1 }
  ];

   $scope.checkData= [
         { "val": 1, "txt": "one" }, 
         { "val": 2, "txt": "two" }, 
         { "val": 3, "txt": "three" }, 
         { "val": 4, "txt": "four" }, 
         { "val": 5, "txt": "five" }, 
         { "val": 6, "txt": "six" }, 
         { "val": 7, "txt": "seven" 
  }];

   $scope.bindData = function (id) {

          console.log(id);
          $scope.someAry = [];
          id.forEach(function (elem) {
              $scope.postData.forEach(function (val) {
              console.log(elem);
              if (val.id== elem && val.status == true) {
                      alert("match  found");
                  }
             else {
                      alert("match not found");
                  }

      });

提前感谢。

您可以使用一个哈希表和一个循环来设置哈希表,使用一个循环来过滤
检查数据

$scope.bindData = function (id) {
    console.log(id);
    $scope.someAry = [];
    id.forEach(function (elem) {
        $scope.postData.forEach(function (val) {
            console.log(elem);
            if (val.id == elem && val.status == 1) {
                $scope.checkData.forEach(function (cval) {
                    if (cval.val == elem) {
                        $scope.newArray.push(cval);
                    }
                });
            }
        });
    })
}
var$scope={},
hash=Object.create(null);
$scope.postData=[{pid:1,id:1,status:1},{pid:1,id:2,status:0},{pid:1,id:1,status:1},{pid:1,id:4,status:1},{pid:1,id:6,status:1},{pid:1,id:7,status:1}];
$scope.checkData=[{val:1,txt:“一”},{val:2,txt:“二”},{val:3,txt:“三”},{val:4,txt:“四”},{val:5,txt:“五”},{val:6,txt:“六”},{val:7,txt:“七”};
$scope.postData.forEach(函数(a){
散列[a.id]=a.status==1;
});
$scope.newArray=$scope.checkData.filter(函数(a){
返回哈希值[a.val];
});
log($scope.newArray)

。作为控制台包装{max height:100%!important;top:0;}
请添加想要的结果。@Nina Scholz我用预期结果更新了问题,请您检查一下。您好,上面的代码正在工作。您可以将元素数组传递给“$scope.bindData”方法,以获得“$scope.newArray”中的结果。