2017-06-22 170 views
0

如何比較兩個不同功能的數組?

var app2 = angular.module("webApp2", []) 
 
    .controller("webCtrl2", function ($scope, $window, $state, $http) { 
 
     console.log("hi " + $state.params.usermail); 
 
     $scope.uName = $state.params.usermail; 
 
     $scope.useriden = $state.params.user; 
 

 
     console.log("hbdhakkdjf" + " " + $scope.uName) 
 
     //$scope.data = $window.sessionStorage.getItem("Mydata"); 
 
     //console.log("data "+$scope.data); 
 
     var usersList = []; 
 
     var frndsAdded = []; 
 

 
     $http.get("http://192.168.2.3:3000/userslist") 
 
      .then(function (response) { 
 
       usersList = response.data; 
 
       //$scope.friendsList = response.data; 
 
       //................................................................. 
 
       $http.get("http://192.168.2.3:3000/sendfriendrequests/" + $scope.uName) 
 
        .then(function (response) { 
 
          frndsAdded = response.data; 
 
         }, 
 
         function (response) { 
 
          console.log("error"); 
 
         }); 
 
       // console.log("array print" + JSON.stringify($scope.usersList)); 
 
      }, function (response) { 
 
       console.log("response"); 
 
      }); 
 
     console.log(frndsAdded); 
 
     console.log("print userid" + $scope.useriden); 
 
     $scope.addFrnd = function (frnd, index) { 
 
      var data = { 
 
       "userId": $scope.useriden, 
 
       "requestname": frnd, 
 
       "username": $scope.uName 
 
      }; 
 
      console.log(data); 
 
      var req = { 
 
       method: 'POST', 
 
       url: 'http://192.168.2.3:3000/friendrequests', 
 
       data: data 
 
      } 
 
      $http(req).then(function (response) { 
 
       console.log("hjhuhjh" + JSON.stringify(response.data)); 
 
       $scope.usersList.splice("index"); 
 
      }, function (response) { 
 
       console.log(JSON.stringify(response)); 
 
      }); 
 
     } 
 
     $scope.logoutFn = function() { 
 
      $state.go("signup"); 
 
     } 
 

 
    });
<nav class="navbar navbar-default well well-sm"> 
 
    <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
      <a class="navbar-brand" href="#">WebChat</a> 
 
     </div> 
 
     <ul class="nav navbar-nav pull-right"> 
 
      <li><a href="#">Home</a></li> 
 
      <li style = margin-top:5%> 
 
       <div class = "dropdown"> 
 
        <a href="#" data-toggle="dropdown"> 
 
         <i class="glyphicon glyphicon-user"></i>Add Friends<span class = "caret"></span> 
 
        </a> 
 
       <ul class = "dropdown-menu list-group" style = " overflow: scroll"> 
 
        <!--<li class = "list-group-item" ng-repeat = "seeFrnd in usersList track by $index" ng-bind = "seeFrnd.username">name 
 
         <button class = "btn btn-primary" ng-click = "addFrnd()">Add Friend</button> 
 
        </li>--> 
 
        <li class = "list-group-item" ng-repeat = "seeFrnd in usersList track by $index"><span ng-bind="seeFrnd.username"></span> 
 
         <button class = "btn btn-primary btn-sm" ng-click = "addFrnd(seeFrnd.username,$index)" class = "buttn" style="float: right">Add Friend</button> 
 
        </li> 
 
       </ul> 
 
       </div> 
 
      </li> 
 
      
 
      <li> 
 
       <a href="#" ng-bind="uName"></a> 
 
      </li> 
 
      <li><a href="#" ng-click="logoutFn()">Logout</a></li> 
 

 
     </ul> 
 
     
 
    </div> 
 
</nav> 
 
<div ui-view></div>

我做的聊天應用程序在這裏我獲得兩個arrays.one是用戶列表和其他的朋友list.both數組在不同functions.I需要比較兩個數組。我怎麼能這樣做?

+0

如果你同時存儲在$範圍變量數組,那麼你可以在那裏該控制器 –

+0

內訪問任何我不能看到同一friendsList任何陣列。有一個,但你有評論說。會很好,如果你可以在這裏粘貼一些明確的代碼 –

+0

我已經把usersList和frndsAdded數組 –

回答

0
angular.forEach(arr1, function(value1, key1) { 
     angular.forEach(arr2, function(value2, key2) { 
      //Comparison logic 
     }); 
    }); 
+0

但是arr1和arr2不在同一範圍內 –

+0

他們在不同的控制器中 –

+0

看看OP的代碼:) –

0

定義$ scope上的兩個數組。獲得第二個數組值後,必須使用邏輯來比較第二個API調用中的兩個數組。如果你想在外面做,那麼你必須等待異步API調用完成,這樣你才能獲得完整的數組。

$scope.usersList = []; 
    $sccope.frndsAdded = []; 
    $http.get("http://192.168.2.3:3000/userslist").then(function(response) { 
     $scope.usersList = response.data; 
     //$scope.friendsList = response.data; 
     //................................................................. 
     $http.get("http://192.168.2.3:3000/sendfriendrequests/" + $scope.uName).then(function(response) { 
      $scope.frndsAdded = response.data; 
      //Comaprison Logic 
      for (var i = 0; i < $scope.usersList.length; i++) { 
       for (var j = 0; j < $scope.frndsAdded.length; j++) { 
        if ($scope.usersList[i].request == $scope.frndsAdded[j].request) 
        //ur logic 
       } 
      } 
     }, function(response) { 
      console.log("error"); 
     }); 
     // console.log("array print" + JSON.stringify($scope.usersList)); 
    }, function(response) { 
     console.log("response"); 
    });