1
var klas4 = [];

klas4[2] = [];
klas4[2]["hour"] = 1;
klas4[2]["teacher"] = "JAG";
klas4[2]["group"] = "V4A";
klas4[2]["subject"] = "IN";
klas4[2]["classroom"] = "B111";

klas4[0] = [];
klas4[0]["hour"] = 6;
klas4[0]["teacher"] = "JAG";
klas4[0]["group"] = "V4B";
klas4[0]["subject"] = "IN";
klas4[0]["classroom"] = "B111";

klas4[1] = [];
klas4[1]["hour"] = 4;
klas4[1]["teacher"] = "NAG";
klas4[1]["group"] = "V4A";
klas4[1]["subject"] = "NA";
klas4[1]["classroom"] = "B309";

这个多维数组需要按小时排序,升序。问题是,我不知道如何对多维数组进行排序。第一个维度(0、1 和 2)需要根据小时更改,但维度 2 的所有其他详细信息(教师、小组等)也需要从索引更改,否则数据会混合。你不知道有多少索引。在这个例子中,正确的顺序应该是:klas4[2][...], klas4[1][...], klas[0][...]

在 PHP 中有一个特定的函数multisort,但我在 jQuery 或 JavaScript 中找不到它。

4

1 回答 1

4
klas4.sort( function(a,b){ return a.hour - b.hour } );

应该这样做。

将 klas4 视为一个对象数组而不是多数组会有所帮助。然后使用排序函数对该数组中的对象进行排序。

sort 函数需要 2 个对象,您必须返回先出现的对象。

您应该阅读有关 Array 的 sort() 的内容,谷歌一下。

此外,正如其他人所评论的那样;klas4 的条目实际上是对象,您应该使用

klas4[2] = {};

甚至更好

klas4[2] = { hour:1 , teacher:"JAG" , group:"V4A" , subject: "IN" };

最后,我假设您和我一样是母语为荷兰语或德语的人。我强烈建议用英文命名所有变量class4,而不是klas4. 这是正确的、专业的做法。

于 2012-12-10T14:19:22.740 回答