【问题标题】:Sort an array based on value根据值对数组进行排序
【发布时间】:2017-03-06 14:46:38
【问题描述】:

根据值对数组进行排序的最有效方法是什么。我有变量 user_location_lat 和一个 user_location_long 与数组 store_locations 一起。

我的变量用户位置有(例如)这个值:lat 45.222123123/long 54.5589858 数组看起来像这样:

id: 4, lat: 43.22243243, longi: 52,342234
id: 5, lat: 45.22243243, longi: 65,432432
id: 8, lat: 77.22243243, longi: 77,555324

etc.

我知道如何根据数组中的值对数组进行排序。但不是我如何根据数组外的值对它们进行排序。

如何从user_location 的数组中找到最接近的值?

编辑:是否有可能根据纬度和经度获得最近的位置?请参阅上面的编辑。

【问题讨论】:

  • 您需要先遍历对象数组并计算到user_location 的距离并将其添加为对象的属性。然后sort()该属性的数组
  • 如何存储与数组中的值相关的id?

标签: jquery arrays sorting


【解决方案1】:

var latArray = [43.22243243, 45.22243243, 77.22243243]
var myLat = 45.222123123;

var closest = latArray.reduce(function (prev, curr) {
  return (Math.abs(curr - myLat) < Math.abs(prev - myLat) ? curr : prev);
});

console.log(closest);

来源:get closest number out of array

【讨论】:

  • 谢谢,但我的代码有误。我需要最接近经纬度(见我的帖子),这可能吗?我认为在这种情况下只有 lat 就足够了.. 但事实并非如此,对不起!
  • 也许可以看看这个:stackoverflow.com/questions/17594401/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2015-04-08
  • 1970-01-01
  • 2019-08-10
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多