Arrays 阿贾克斯在里面,我无法打破我的前程

Arrays 阿贾克斯在里面,我无法打破我的前程,arrays,foreach,break,Arrays,Foreach,Break,我有这个: var addresses_tmp = addresses.slice(); var final_addresses = []; addresses.forEach(function (current_address, i) { var near_addresses = []; near_addresses.push(current_address); addresses_tmp.forEach(function (ne

我有这个:

var addresses_tmp = addresses.slice();
    var final_addresses = [];
    addresses.forEach(function (current_address, i) {
        var near_addresses = [];
        near_addresses.push(current_address);
        addresses_tmp.forEach(function (next_address, j) {
            if (current_address.address.info.code != next_address.address.info.code) {
                var data = {
                    key             : $scope.MicrosoftKey,
                    optmz           : "distance",
                    routeAttributes : "routePath"
                }
                data["wp.0"] = current_address.address.location.lat + "," + current_address.address.location.lng;
                data["wp.1"] = next_address.address.location.lat + "," + next_address.address.location.lng;
                ajax.sendApiRequest(data, "GET", "http://dev.virtualearth.net/REST/V1/Routes/Driving", is_url=true).then(
                    function(response) {
                        var distance = response.data.resourceSets[0].resources[0].travelDistance;
                        if (distance < 0.020) {
                            near_addresses.push(next_address);
                            addresses_tmp.splice(j, 1);
                        }
                        if (j == addresses.length - 1) {
                            final_addresses.push(near_addresses);
                            if (near_addresses.length == 1) {
                                addresses_tmp.splice(j, 1);
                            }
                            addresses_tmp.splice(i, 1);

                        }

                        // if (count == addresses.length * addresses.length) {
                        //     console.log("ya he acabado todasssss")

                        // }
                    },
                    function(error) {
                        console.log("error", error);
                    }
                )
            }
        })
    })
var addresses\u tmp=addresses.slice();
var最终地址=[];
地址.forEach(函数(当前地址,i){
var近_地址=[];
近_地址。推送(当前_地址);
地址\u tmp.forEach(函数(下一个地址,j){
if(当前地址.地址.信息.代码!=下一个地址.地址.信息.代码){
风险值数据={
key:$scope.MicrosoftKey,
optmz:“距离”,
routeAttributes:“routePath”
}
数据[“wp.0”]=当前地址.address.location.lat+”,“+当前地址.address.location.lng;
数据[“wp.1”]=下一个地址.address.location.lat+”,“+下一个地址.address.location.lng;
sendApiRequest(数据,“GET”http://dev.virtualearth.net/REST/V1/Routes/Driving“,是_url=true)。然后(
功能(响应){
var distance=response.data.resourceSets[0]。资源[0]。旅行距离;
如果(距离<0.020){
近_地址。推送(下一个_地址);
地址(j,1);
}
if(j==addresses.length-1){
最终_地址。推送(靠近_地址);
if(near_addresses.length==1){
地址(j,1);
}
地址\u tmp.拼接(i,1);
}
//if(count==addresses.length*addresses.length){
//console.log(“ya he acabado Todassss”)
// }
},
函数(错误){
console.log(“错误”,error);
}
)
}
})
})
我想在第一个foreach和第二个foreach完成时中断所有函数,但我不能设置是否需要这样做的条件

因为我在第二个foreach中有ajax,所以我的变量很疯狂,所以我不能设置if条件来打破它


我需要这样做,因为我正在比较两个数组,并获得两点之间的距离(第一个数组中的一个点和另一个数组中的第二个点)

我更改了我的代码并使用递归,它就工作了!我改变了我的代码,我使用递归,它就可以工作了!