がlistA
あり、定義済みの「列」の配列があるとします。
var listA = [{
name: "Mike",
exercisedateandtime: 1299233593000,
exercise: "Jumping Jacks",
numsets: 5
}, {
name: "Charles",
exercisedateandtime: 1299233593000,
exercise: "Swimming",
numsets: 2
}, {
name: "Charles",
exercisedateandtime: 1299233593000,
exercise: "Swimming",
numsets: 6
}, {
name: "Mike",
exercisedateandtime: 1299237012000,
exercise: "Running",
numsets: 5
}, {
name: "William",
exercisedateandtime: 1299237320000,
exercise: "Fishing",
numsets: 2
}, {
name: "William",
exercisedateandtime: 1299237611000,
exercise: "Motor Boating",
numsets: 6
}, {
name: "Charles",
exercisedateandtime: 1299237611000,
exercise: "Swimming",
numsets: 4
}];
var columns = ["Exercise Date", "Mike", "Charles", "William"]
目標は、リスト A から単一の配列を生成して、たまたま一致する場合はいつでも「折りたたまれる」ようにすることです。この場合、出力は次のようになります。
var output = [[1299233593000, 5, 2, null]
[1299237012000, 6, null, null]
[1299237012000, 6, null, 0]
[1299237320000, null, null, 2]
[1299237320000, null, null, 2]
[1299237611000, null, 4, 6]]
1 人以上の人が同じ時刻 "1299233593000" を持っている場合、"出力" がそれを考慮し、それらを 1 つの配列に "折りたたむ" ことに注意してください。exercisedatetimes
個人が「numsets」を持っていない場合、null 値が表示されます。null でない値は、その時点で個人が「numsets」を持っている値です。
JavaScript を使用して変数名 (フレッドが彼の情報と共に listA に投入されたとします) と変数列 (「列」配列から「ウィリアム」を削除でき、それが削除されないと仮定して) を許可しながら、JavaScript を使用して「出力」する最良の方法は何ですか?出力に表示されます)。
理想的なソリューションは、必要な速度と処理において最高のパフォーマンスを発揮することです。