Javascript 如何比较两个具有不同功能的阵列?

Javascript 如何比较两个具有不同功能的阵列?,javascript,angularjs,Javascript,Angularjs,var-app2=angular.module(“webApp2”,[]) .controller(“webCtrl2”,函数($scope、$window、$state、$http){ log(“hi”+$state.params.usermail); $scope.uName=$state.params.usermail; $scope.useriden=$state.params.user; log(“hbdhakkdjf”+“”+$scope.uName) //$scope.data=$

var-app2=angular.module(“webApp2”,[])
.controller(“webCtrl2”,函数($scope、$window、$state、$http){
log(“hi”+$state.params.usermail);
$scope.uName=$state.params.usermail;
$scope.useriden=$state.params.user;
log(“hbdhakkdjf”+“”+$scope.uName)
//$scope.data=$window.sessionStorage.getItem(“Mydata”);
//console.log(“数据”+$scope.data);
var usersList=[];
var FRNDSADD=[];
$http.get(“http://192.168.2.3:3000/userslist")
.然后(功能(响应){
usersList=response.data;
//$scope.friendsList=response.data;
//.................................................................
$http.get(“http://192.168.2.3:3000/sendfriendrequests/“+$scope.uName)
.然后(功能(响应){
frndsAdded=响应数据;
},
功能(响应){
控制台日志(“错误”);
});
//log(“数组打印”+JSON.stringify($scope.usersList));
},功能(回应){
控制台日志(“响应”);
});
控制台日志(FRNDSADD);
log(“打印用户ID”+$scope.useriden);
$scope.addFrnd=函数(frnd,索引){
风险值数据={
“userId”:$scope.useriden,
“请求名称”:frnd,
“用户名”:$scope.uName
};
控制台日志(数据);
var req={
方法:“POST”,
网址:'http://192.168.2.3:3000/friendrequests',
数据:数据
}
$http(req).then(函数(响应){
log(“hjhuhjh”+JSON.stringify(response.data));
$scope.usersList.splice(“索引”);
},功能(回应){
log(JSON.stringify(response));
});
}
$scope.logoutFn=函数(){
$state.go(“注册”);
}
});

    • 加朋友

定义$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");
    });
$scope.usersList=[];
$sccope.frndsAdded=[];
$http.get(“http://192.168.2.3:3000/userslist)然后(函数(响应){
$scope.usersList=response.data;
//$scope.friendsList=response.data;
//.................................................................
$http.get(“http://192.168.2.3:3000/sendfriendrequests/“+$scope.uName)。然后(函数(响应){
$scope.frndsAdded=response.data;
//Comaprison逻辑
对于(变量i=0;i<$scope.usersList.length;i++){
对于(变量j=0;j<$scope.frndsAdded.length;j++){
if($scope.usersList[i].request==$scope.frndded[j].request)
//乌尔逻辑
}
}
},功能(回应){
控制台日志(“错误”);
});
//log(“数组打印”+JSON.stringify($scope.usersList));
},功能(回应){
控制台日志(“响应”);
});

如果将这两个数组都存储在$scope变量中,则可以在该控制器中的任何位置访问它。我看不到任何具有相同friendsList的数组。有一个,但你已经评论过了。如果你能在这里粘贴一些清晰的代码,那就太好了。我已经获取了usersList和frndsAdded Arrays,但是arr1和arr2不在同一范围内。它们在不同的控制器中吗?虽然这些代码可能会回答这个问题,但提供关于如何和/或为什么解决这个问题的附加上下文将提高答案的长期价值。
 $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");
    });