【发布时间】:2021-04-24 08:27:33
【问题描述】:
我试图通过使用npm geolib 来获取纬度|经度坐标之间的距离。我有一个函数,可以在其中查询 firestore 并返回一组对象。然后我通过一个 for 循环运行该数组,在该循环中我调用 geolib.getPreciseDistance 以获取数组中每个对象的距离。
我很难从 for 循环中获得一个排序数组作为返回。在理想情况下,新数组将使用 index[0] 中距离最近的对象进行排序。
我已经在下面发布了。我感谢任何和所有反馈,因为我仍在学习。谢谢!
function getNearestWalk() {
let currentLng = userLocation.longitude;
let currentLat = userLocation.latitude;
firestore()
.collection('Walks')
.where('status', '==', 'started')
.limit(10)
.get()
.then((walks) => {
const walksArray = [];
walks.forEach((liveWalks) => {
walksArray.push(liveWalks.data());
});
console.log(walksArray);
for (var i = 0; i < walksArray.length; i++) {
geolib.getPreciseDistance(
{ latitude: currentLat, longitude: currentLng },
{
latitude: walksArray[i].latitude,
longitude: walksArray[i].longitude,
}
);
}
});
}
【问题讨论】:
-
您要对 walsArray 进行排序,还是在 for 循环之后还有另一个要排序的数组或对象?如果在循环之后向我们提供您从循环中获得的数据
-
@Elnatanvazana 感谢您的快速回复。我希望 for 循环返回一个按循环中执行的操作排序的新数组。该循环正在获取恒定位置与数组中每个对象的位置之间的距离。我试图在第一个索引位置获得一个具有最短距离的对象的新数组。我希望这是有道理的。再次感谢!
-
你能分享一个你从
geolib.getPreciseDistance()收到的对象吗,请编辑你的问题并添加它,你可以做console.log(geolib.getPreciseDistance({//put parameters here},{//put parameter here}))
标签: javascript arrays sorting for-loop return