【发布时间】:2019-04-17 00:57:35
【问题描述】:
在这部分之前,我制作了一个包含纬度、经度和类型的主数组,形成一个公共 JSON API(https://data.buffalony.gov/resource/v5df-q4ru.json)。
我所说的master数组的意思如下..
[["latitude","longitude","type"]...] // "..." represent more of
//those single list containing latitude, longitude and type.
要找到中心点,我需要在主数组中找到最大和最小的纬度和经度。中心点将是该最大值和最小值的平均值。
我做了以下操作,但我相信有更好的方法。
function findMapCenter(master){
for (var key in Object.keys(master)){
var lat = master([key]["latitude"]); // [key] since it's a
//array inside a array then finding the key string [latitude]
var lon = master([key]["longitude"]);
var lat_max = Math.max(lat);
var lat_min = Math.min(lat);
var lon_max = Math.max(lon);
var lon_min = Math.min(lon);
var total_max = (lat_max + lon_min);
var total_min = (lon_max + lon_min);
var average = (total_max / total_min);
}
return average;
}
获取经度和纬度的平均值。
【问题讨论】:
-
您当前的函数是否给出了您正在寻找的结果?请注意,多行上的 cmets 在每行之前都需要
/*/*/或//。return average似乎很奇怪,因为average只是计算的最后一个值 -
将单个值传递给
max不会产生有用的结果。如果你传入一个数组,你会得到NaN,除非你使用apply。 -
我编辑了 cmets。我对申请不熟悉。
标签: javascript arrays json loops