Javascript:对多维数组进行排序
Posted
技术标签:
【中文标题】Javascript:对多维数组进行排序【英文标题】:Javascript: sort multidimensional array 【发布时间】:2011-04-22 14:50:49 【问题描述】:这样创建多维数组后,如何排序?
假设“标记”已经定义:
var location = [];
for (var i = 0; i < markers.length; i++)
location[i] = ;
location[i]["distance"] = "5";
location[i]["name"] = "foo";
location[i]["detail"] = "something";
对于上面的示例,我需要按“距离”对其进行排序。 我已经看到有关排序数组和多维度数组的其他问题,但似乎没有一个适用于此。
【问题讨论】:
【参考方案1】:location.sort(function(a,b)
// assuming distance is always a valid integer
return parseInt(a.distance,10) - parseInt(b.distance,10);
);
javascript 的array.sort
方法有一个可选参数,它是自定义比较的函数引用。返回值是>0
表示b
首先,0
表示a
和b
相等,<0
表示a
首先。
【讨论】:
这行得通,虽然“距离”是小数(如“964.543”),所以必须删除 parseInt,否则小数点后排序不准确。 @DecaparseFloat(a.distance)
在这种情况下是合适的。
就像一个迷人的魅力!如此简单,但完美。【参考方案2】:
你试过了吗?
location.sort(function(a,b)
return a.distance - b.distance;
);
【讨论】:
【参考方案3】:到目前为止发布的两个排序函数都应该可以工作,但您的主要问题是使用 location
作为变量,因为它已经被系统定义了。
【讨论】:
+1 好点。但这并不是一个真正的答案...... :) 你应该评论其中一个。以上是关于Javascript:对多维数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章