javascript - 用javascript解析json坐标

标签 javascript json

我需要找到一个最近的坐标并排列最近的城市。 在控制台日志中我需要这样的:8 city, 63.50590523722971; 5城市, 76.32168761236873 我认为坐标没问题,但我如何将城市属性“city”附加到 result[i] 并用它获取。

var locationcity = [
  {"city":"1 City","value":"61,90"},
  {"city":"2 City","value":"34,97"},
  {"city":"3 City","value":"21,63"},
  {"city":"4 City","value":"19,84"},
  {"city":"5 City","value":"0,81"},
  {"city":"6 City","value":"6,76"},
  {"city":"7 City","value":"43,64"},
  {"city":"8 City","value":"18,64"},
  {"city":"9 City","value":"10,61"},
]

function findClosest(locationcity){
    var result = [];
    for(var i=0; i < locationcity.length; i++){
        for(var j = 1; j < locationcity.length-1 ; j++){
            var x, y , r1 , r2;
            var id = locationcity[i].id;
            var coordinate_x = locationcity[i].value.split(",");
            var coordinate_y = locationcity[j].value.split(",");
            x = coordinate_x[0] - coordinate_y[0];
            y = coordinate_x[1] - coordinate_y[1];
            r1 = Math.pow(x, 2);
            r2 = Math.pow(y, 2);
            result[i] = Math.sqrt(r1 + r2);
        }
    }
   var closest = result.sort();
   $(closest).each(function(){
     var _this = $(this);
     console.log(_this);
   });
}
findClosest(locationcity);

谢谢

最佳答案

排序函数可以采用可选函数作为参数: http://www.w3schools.com/jsref/jsref_sort.asp

因此,不要只存储距离,而是像这样存储城市:

result[i] = {'distance': Math.sqrt(r1 + r2), 'city': locationcity[i].city };

然后当你排序时,你提供一个排序函数:

var closest = result.sort(function (a, b) {
   return a['distance'] - b['distance'];
});

关于javascript - 用javascript解析json坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324702/

相关文章:

javascript - JQgrid:无法从 JSON 数据正确渲染表格

javascript - 获取变量的值以便从javascript中的字典中获取值

javascript - 创建 JSON 字符串以发布到 jQuery/Javascript 中的网络服务

javascript - 将 JSON 从 JStree 发送到 MSSQL DB

javascript - C# Web API 中的 JSON 数据无法正确解析

json - 如何在 D 中使用 JSON 数据发出 http POST 请求

javascript - 在Controller的init函数中获取View组件

javascript - 使用 JQuery 确定元素集合是否可见,例如 $ (".someClass")

javascript - jquery post 调用路由 laravel 不工作

javascript - 无法更改 <label> 文本颜色