我正在开展一个小项目,并且遇到了一些难以让一些人解决的难题。我需要对一个数组进行排序,该数组包含从A点到B点的距离的浮点值和一个Address的字符串。如果我有一个没有字符串的数组,那么数组将使用array.sort(function(a,b){return a-b})
进行排序,但是当我添加字符串值时,它没有正确排序。
这是我的代码:
<script type="text/javascript">
var data = <?php echo json_encode($corodinates); ?>;
var nearest = new Array();
for (var i = 0; i < 420; i++)
{
var markers = [(data.Latitude[i]), (data.Longitude[i])];
var userLocation = new google.maps.LatLng(42.4999923706, -96.4003067017);
var dealerLocation = new google.maps.LatLng(markers[0], markers[1]);
var distance = google.maps.geometry.spherical.computeDistanceBetween(userLocation, dealerLocation);
nearest[i] = [(distance/1609.344), (data.Address[i])];
}
nearest.sort(function(a,b){return a-b});
</script>
这就是我的数组的样子:
0: 482.5813729353341
1: "10940 S Parker Road #723"
我需要它按0键中的浮点值排序。
答案 0 :(得分:2)
您只需要访问数组元素中的数组以获取距离值并使用排序回调中的数据:
nearest.sort(function(a,b){return a[0]-b[0]});
答案 1 :(得分:1)
nearest.sort(function(a,b){return a[0]-b[0]});
喜欢这个