:날짜별로 배열의 항목을 그룹화하려면 어떻게합니까? 객체의 다음과 같은 배열을 지정해,
[
{
"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,
}
]
나는 새로운 배열을 만들려고하고, (키로) 각 날짜 개체를 만들 것이며, 어떤 게임은 게임 아래에 나열된 날짜에 경기 (다른 키)를 동일한 객체에 저장합니다.
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]);
}
내 버전은 다음 이들의 내부의 값으로 날짜와 배열을 반환하고, :
여기[
{
date:'date string',
games:[array of games played on the date]
},
{
date: 'other date',
games:[games under the other date]
}
]...
내가 무엇을했는지 있습니다 : 같은
새로운 배열이 보일 것입니다 게임이 나열되어 있지만 다른 키와 같은 개체에 나열하려고합니다.
도움이나 도움을 주시면 감사하겠습니다.
? 해결책은 여기에서 아주 간단합니다. –
안녕하세요, Spencer, 코멘트에 코드를 게시하는 방법을 모르겠지만 빈 배열을 만들고 for 루프를 실행하여 첫 번째 정보를 반복했습니다. 나는 원래 날짜를 (yyyy-mm-dd) 형식으로 가져온 다음 현재 빈 배열에 해당 날짜가 있는지 확인하기 위해 다른 for 루프를 만들었습니다. 그렇지 않으면 새 키를 만들 것입니다. 날짜를 입력 한 다음 게임을 게임 키로 전달하십시오. 처음에는 충격이 있었고 기억이 망가졌고 이전의 물건을 덮어 썼습니다. – Blake
코드를 주석에 게시하지 않고 질문에 대한 편집으로 추가하십시오. –