Javascript 按里程、升序排列值的函数 联合=设施射线 .map((设施,i)=>({ 设施, 距离:距离数组[i], 时间:时间数组[i], 地址:传真地址[i] })) .sort((第一,第二)=>first.distance-second.distance); 控制台日志(组合); }; renderTemplate=async()=>{ 等待排序值(); log(“renderTemplate已启动”); //html中的抓取容器div入口点 let container=document.querySelector(“.container sm”); for(设i=0;i{ e、 预防默认值(); const patientAddressInput=document.querySelector(“#patientaddress”); //获取用户条目并在动态创建的HTML中分配给inputVal inputVal.push(patientAddressInput.value); fetchAPI(); log(“监听器被激发”); }); resetButton.addEventListener(“单击“,()=>location.reload()) Ethos服务中心-谷歌地图距离搜索 病人目的地 提交 明确目的地
我找到了一种方法来做到这一点,尽管这是一种刻薄、俗气的方法,可能不是最有效的方法。我在循环的Javascript 按里程、升序排列值的函数 联合=设施射线 .map((设施,i)=>({ 设施, 距离:距离数组[i], 时间:时间数组[i], 地址:传真地址[i] })) .sort((第一,第二)=>first.distance-second.distance); 控制台日志(组合); }; renderTemplate=async()=>{ 等待排序值(); log(“renderTemplate已启动”); //html中的抓取容器div入口点 let container=document.querySelector(“.container sm”); for(设i=0;i{ e、 预防默认值(); const patientAddressInput=document.querySelector(“#patientaddress”); //获取用户条目并在动态创建的HTML中分配给inputVal inputVal.push(patientAddressInput.value); fetchAPI(); log(“监听器被激发”); }); resetButton.addEventListener(“单击“,()=>location.reload()) Ethos服务中心-谷歌地图距离搜索 病人目的地 提交 明确目的地,javascript,async-await,fetch-api,Javascript,Async Await,Fetch Api,我找到了一种方法来做到这一点,尽管这是一种刻薄、俗气的方法,可能不是最有效的方法。我在循环的末尾添加了一个三元运算符,用于检查I的值是否等于数组中最后一个元素的索引值。如果是,请等待1秒(通过运行setTimeout函数)让DistanceMatrix调用运行,这样我就有了一些值,然后调用sortValues函数。至少它是有效的。所有代码都是相同的,但这里添加了带有三元运算符和设置超时的callFetch函数 callFetch = async dataObject => { co
末尾添加了一个三元运算符,用于检查I
的值是否等于数组中最后一个元素的索引值。如果是,请等待1秒(通过运行setTimeout函数)让DistanceMatrix调用运行,这样我就有了一些值,然后调用sortValues
函数。至少它是有效的。所有代码都是相同的,但这里添加了带有三元运算符和设置超时的callFetch
函数
callFetch = async dataObject => {
console.log("callFetch fired");
// Map through the data object and grab the facId and address of each location
const facId = dataObject.data.map(e => e["6"].value);
const addresses = dataObject.data.map(e => e["8"].value);
// Create Google Maps distance service instance
distanceService = new google.maps.DistanceMatrixService();
for (let i = 0; i < addresses.length; i++) {
// Add matrix settings object
distanceService.getDistanceMatrix({
origins: [inputVal.toString("")],
destinations: [addresses[i]],
travelMode: "DRIVING",
unitSystem: google.maps.UnitSystem.IMPERIAL,
durationInTraffic: true,
avoidHighways: false,
avoidTolls: false,
},
// Set response and error capture
(response, status) => {
if (status !== google.maps.DistanceMatrixStatus.OK) {
console.log("Error:", status);
const message = document.querySelector("#message");
message.innerHTML = `Error: ${status}. Please resubmit.`;
} else {
distanceResult = response.rows[0].elements[0].distance.text;
timeResult = response.rows[0].elements[0].duration.text;
// Convert distanceResult values to integers and push to distanceArray to later sort
intDistanceResult = parseInt(distanceResult.replace(/,/g, ""));
// Push results to respective arrays to pass to combined object inside of sortValues function
facilityArray.push(facId[i]);
distanceArray.push(intDistanceResult);
timeArray.push(timeResult);
facAddress.push(addresses);
}
});
(i == addresses.length - 1 ? setTimeout(() => { sortValues() }, 1000) : null)
}
};
callFetch=async dataObject=>{
log(“callFetch被激发”);
//映射数据对象并获取每个位置的facId和地址
const facId=dataObject.data.map(e=>e[“6”].value);
const addresses=dataObject.data.map(e=>e[“8”].value);
//创建谷歌地图远程服务实例
distanceService=new google.maps.DistanceMatrixService();
for(设i=0;i{
if(status!==google.maps.DistanceMatrixStatus.OK){
日志(“错误:”,状态);
const message=document.querySelector(“消息”);
message.innerHTML=`错误:${status}。请重新提交。`;
}否则{
distanceResult=response.rows[0]。元素[0]。distanceResult.text;
timeResult=response.rows[0]。元素[0]。duration.text;
//将distanceResult值转换为整数,并将distanceArray推送到以后的排序
intDistanceResult=parseInt(distanceResult.replace(/,/g,”);
//将结果推送到各自的数组,以传递到sortValues函数内部的组合对象
设施推送(设施[i]);
distanceArray.push(intDistanceResult);
timeArray.push(timeResult);
facadress.push(地址);
}
});
(i==addresses.length-1?setTimeout(()=>{sortValues()},1000):null)
}
};
我找到了一种方法来做到这一点,尽管这是一种刻薄、俗气的方法,可能不是最有效的方法。我在循环
的末尾添加了一个三元运算符,用于检查I
的值是否等于数组中最后一个元素的索引值。如果是,请等待1秒(通过运行setTimeout函数)让DistanceMatrix调用运行,这样我就有了一些值,然后调用sortValues
函数。至少它是有效的。所有代码都是相同的,但这里添加了带有三元运算符和设置超时的callFetch
函数
callFetch = async dataObject => {
console.log("callFetch fired");
// Map through the data object and grab the facId and address of each location
const facId = dataObject.data.map(e => e["6"].value);
const addresses = dataObject.data.map(e => e["8"].value);
// Create Google Maps distance service instance
distanceService = new google.maps.DistanceMatrixService();
for (let i = 0; i < addresses.length; i++) {
// Add matrix settings object
distanceService.getDistanceMatrix({
origins: [inputVal.toString("")],
destinations: [addresses[i]],
travelMode: "DRIVING",
unitSystem: google.maps.UnitSystem.IMPERIAL,
durationInTraffic: true,
avoidHighways: false,
avoidTolls: false,
},
// Set response and error capture
(response, status) => {
if (status !== google.maps.DistanceMatrixStatus.OK) {
console.log("Error:", status);
const message = document.querySelector("#message");
message.innerHTML = `Error: ${status}. Please resubmit.`;
} else {
distanceResult = response.rows[0].elements[0].distance.text;
timeResult = response.rows[0].elements[0].duration.text;
// Convert distanceResult values to integers and push to distanceArray to later sort
intDistanceResult = parseInt(distanceResult.replace(/,/g, ""));
// Push results to respective arrays to pass to combined object inside of sortValues function
facilityArray.push(facId[i]);
distanceArray.push(intDistanceResult);
timeArray.push(timeResult);
facAddress.push(addresses);
}
});
(i == addresses.length - 1 ? setTimeout(() => { sortValues() }, 1000) : null)
}
};
callFetch=async dataObject=>{
log(“callFetch被激发”);
//映射数据对象并获取每个位置的facId和地址
const facId=dataObject.data.map(e=>e[“6”].value);
const addresses=dataObject.data.map(e=>e[“8”].value);
//创建谷歌地图远程服务实例
distanceService=new google.maps.DistanceMatrixService();
for(设i=0;i