:アイテムを日付で配列にグループ化するにはどうすればよいですか?オブジェクトの以下の配列を指定して
[
{
"notes": "Game was played",
"time": "2017-10-04T20:24:30+00:00",
"sport": "hockey",
"owner": "steve",
"players": "10",
"game_id": 1,
},
{
"notes": "Game was played",
"time": "2017-10-04T12:35:30+00:00",
"sport": "lacrosse",
"owner": "steve",
"players": "6",
"game_id": 2,
},
{
"notes": "Game was played",
"time": "2017-10-14T20:32:30+00:00",
"sport": "hockey",
"owner": "steve",
"players": "4",
"game_id": 3,
},
{
"notes": "Game was played",
"time": "2017-10-04T10:12:30+00:00",
"sport": "hockey",
"owner": "henry",
"players": "10",
"game_id": 4,
},
{
"notes": "Game was played",
"time": "2017-10-14T20:34:30+00:00",
"sport": "soccer",
"owner": "john",
"players": "12",
"game_id": 5,
}
]
私は新しい配列を作成しようとしています、(キーなど)各日付でオブジェクトを作成し、あらゆるゲームがゲームの下にリストされたその日に演奏(別キー)を指定します。
新しい配列は、次のようになります。ここでは
[
{
date:'date string',
games:[array of games played on the date]
},
{
date: 'other date',
games:[games under the other date]
}
]...
は私がやっていることです:
let t = this.state.data; (data above)
let list = [];
for (let i = 0; i < t.length; i++) {
let dates = t[i].time.slice(0,10);
if (!list[dates]) {
list[dates] = [];
}
list[dates].push(t[i]);
}
私のバージョンでは、これらの内、値として日付を持つ配列を返し、ゲームはリストされていますが、私は別のキーと同じオブジェクトにそれらをリストしようとしています。
何か助けや指導をいただければ幸いです。
あなたは、これまで何を試してみましたか?ここでの解決方法は非常に簡単です。 –
こんにちはスペンサー、私はコメントにコードを投稿する方法はわかりませんが、空の配列を作成し、forループを実行して最初の情報を繰り返します。私はオリジナルの日付をスライスして(yyyy-mm-dd)フォーマットを取得し、現在の空の配列にその日付が存在するかどうかを調べるために別のforループを作成し、そうでない場合は、任意のゲームをゲームのキーに渡します。最初は私はループを起こし、私の記憶は墜落し、私は前のオブジェクトを上書きし続けました。 – Blake
コメントにコードを投稿するのではなく、質問の編集としてコードを追加します。 –