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をマルチ配列ではなく、オブジェクトの1配列と考えると役立ちます。次に、並べ替え関数を使用して、その配列内のオブジェクトを並べ替えます。

並べ替え関数は2つのオブジェクトを受け取り、どちらが先に来るかを返す必要があります。

配列のsort()を読んでください。

また、他の人がコメントしているように; klas4のエントリは実際にはオブジェクトであるため、次を使用する必要があります

klas4[2] = {};

またはさらに良い

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

最後に、私と同じように、あなたはオランダ語またはドイツ語のネイティブスピーカーだと思います。class4すべての変数に、ではなく英語で名前を付けることを強くお勧めしますklas4。それは正しい、専門的なことです。

于 2012-12-10T14:19:22.740 に答える