У меня есть массив пар ключевых значений, и я хотел бы сгруппировать их по дате. gameDate
на самом деле похож на «2014-01-01 12:00:00», поэтому я разбиваю его и пытаюсь использовать дату как ключ.Javascript Группа по дате внутри цикла for
var a = {};
(function() {
for (var i = 0; i < games.length; i++) {
if (a[games[i]['gameDate'].split(' ')[0]]) {
var b = [];
b = [a[games[i]['gameDate'].split(' ')[0]]];
b.push(games[i]);
a[games[i]['gameDate'].split(' ')[0]] = b;
}else {
a[games[i]['gameDate'].split(' ')[0]] = games[i];
}
}
})();
console.log(a);
Я «гугл» в течение некоторого времени ... Я думаю, что я пытаюсь получить массив объектов ... но это ближе всего я мог бы получить, и это все еще очень испортило вверх. Я хотел бы сгруппировать все games[i]
на основе их даты. Пожалуйста, помогите.
for (var i = 0; i < games.length; i++) {
if ([games[i]['gameDate'].split(' ')[0]] in a) {
var b = [];
b = a[games[i]['gameDate'].split(' ')[0]];
b.push(games[i]);
a[games[i]['gameDate'].split(' ')[0]] = b;
}else {
a[games[i]['gameDate'].split(' ')[0]] = [];
a[games[i]['gameDate'].split(' ')[0]].push(games[i]);
}
}
являются даты действительно отформатирован без дополнения 0 в месяц и день? Если это так, вам нужно разделить на «-» тоже и создать объект даты – mplungjan
@mplungjan Нет, у них есть нули, они поступают из базы данных. Я не думаю, что это важно для вопроса. Я просто написал это быстро в качестве примера – denikov
Вы правы, это не имеет значения. Я потратил некоторое время на то, чтобы ключ объекта был правильной строкой, но кажется, что yyyy-mm-dd в порядке, по крайней мере, в chrome. – mplungjan