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条件来打破它
我需要这样做,因为我正在比较两个数组,并获得两点之间的距离(第一个数组中的一个点和另一个数组中的第二个点)我更改了我的代码并使用递归,它就工作了!我改变了我的代码,我使用递归,它就可以工作了!