【发布时间】:2013-12-14 20:21:10
【问题描述】:
我正在尝试在 Javascript 中对多维数组进行排序。我看到很多关于如何按数值排序的解释,但我似乎无法弄清楚如何按文本对其进行排序。
我要排序的数组如下所示:
var blocks = [
{
"heading": ["2013-10-1", "Chris", "11"],
"content": "stuff 1"
},
{
"heading": ["2013-10-3", "Zoe", "14"],
"content": "stuff 2"
},
{
"heading": ["2013-10-2", "Petey", "12"],
"content": "stuff 3"
}
]
我知道我可以对这个多维对象数组进行排序,比如数字值:
blocks.sort(
function(a,b){
return a.heading[2] - b.heading[2];
}
)
如果我想按heading 子数组中的第一个或第二个值对数组进行排序,我不确定传递给排序方法的函数是什么样的,因为索引 0 处的值是日期和值索引 1 处是文本。
我试图查找将日期或文本更改为数字,然后根据它的数值对其进行评估,但我无法找到这样做的方法(我也不知道这是否是最好的方法接近这个)。有什么建议吗?
【问题讨论】:
-
按文本排序将按字母顺序排序,您传递的比较器函数看起来与您用于数字的函数完全一样。您实际上要对哪个值进行排序?您可以发布您尝试过的代码吗?
-
我正在尝试按标题数组的第二个值排序,因此它应该对值“Chris”、“Zoe”和“Petey”进行排序。块排序代码是我尝试排序的代码。它适用于数字(如标题数组中的第三个值),但不适用于文本。
标签: javascript sorting date text multidimensional-array