gpt4 book ai didi

javascript - 从左上到右下对经纬度对象进行排序

转载 作者:行者123 更新时间:2023-11-28 16:43:33 25 4
gpt4 key购买 nike

我有一个看起来像这样的对象:

Object {
"-M2p5oNuWAJFhZKv64ht": Object {
"latitude": -37.8263853,
"longitude": 144.9951198
},
"-M39Q4SBJbGZjUQHfvGa": Object {
"latitude": -37.805684,
"longitude": 144.893994
},
"-M39Q4pAz5sF0tF4d3XK": Object {
"latitude": -37.8086484,
"longitude": 144.8823838
},
"-M39Q4zL7ZNzqdHaJLvZ": Object {
"latitude": -37.8076142,
"longitude": 144.8838452
},
"-M39Q58FwvBP2HoDZGD9": Object {
"latitude": -37.808319,
"longitude": 144.892747
},
"-M39Q5Idu-EgkAn0Vd2Q": Object {
"latitude": -37.8108465,
"longitude": 144.8798158
},
"-M39Q5U8XCq1h4ieo_Db": Object {
"latitude": -37.802019,
"longitude": 144.8909805
}
...
}

想象这些坐标与下面 map 上的红色图钉相关,我想从每个图钉的最左上角开始,对它们进行排序,就好像一个正方形从该点慢慢扩展一样。我只能想到获取起始 lat long 并将这些值递增 +1,然后检查值是否 < 任一变量,重复。我想这显然是非常低效的,并且希望有一种更强大和可扩展的方式。

谢谢

enter image description here

最佳答案

您想按 2 个坐标的最大值对数组进行排序。

myArray.sort((a, b) => {
const aMax = Math.max(a.latitude, a.longitude);
const bMax = Math.max(b.latitude, b.longitude);

if (aMax < bMax) return -1;
if (bMax < aMax) return 1;
return 0;
});

关于javascript - 从左上到右下对经纬度对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60841309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com