Когда я это делаю, я получаю массив, в котором хранятся данные, сгруппированные по месяцам и дням даты, но не по году (я делаю это, чтобы получить максимальные, минимальные и средние значения за каждый день, есть данные для)Лучше, чем цепочка _.groupBy?
Проблема заключается в том, что массив хранит массив из 2-3 значений для этого дня и месяца в пределах даты, которая является ключевым значением. Эти 2-3 индекса имеют массив длиной один, который содержит ссылку на объект, который имеет фактическую точку данных (уровень), в которой я нуждаюсь. Объект содержит три атрибута: дату, id (всегда нулевую) и уровень, который является поплавком.
Мне либо нужно найти способ, чтобы те 2-3 индексы удерживали объект напрямую, либо находили способ, с помощью которого _.each может получить доступ к уровню.
Любые мысли?
var groupedData = _.groupBy(data, "date");
var groupedLevels = _.groupBy(groupedData, function (points, date) {
var dateParsed = parseDate(date);
var month = dateParsed.getMonth();
var day = dateParsed.getDate();
var monthDay = month + "-" + day;
return monthDay;
});
_.each(groupedLevels, function (points, date) {
var levels = _.map(_.pluck(points, "level"), parseFloat);
minimum.push([ date, R.min(levels) ]);
maximum.push([ date, R.max(levels);
var averageLevel = R.sum(levels)/levels.length;
average.push([date, averageLevel]);
})
Таким образом, данные, как есть, что первоначальный вход выглядит следующим образом (пример шт):
[ { date: "2009-01-01",
id: null,
level: "0.08",
},
// ...
]
В настоящее время groupedData это:
{ "2009-01-01":
[ { date: "2009-01-01",
id: null,
level: "0.08"
}
],
// ...
}
groupedLevels выглядит например,
{ "0-1":
[ [ { date: "2009-01-01".
id: null,
level: "0.08"
}
],
// ...
],
// ...
}
Я хочу пропустить все массивы длины один и просто сохранить там объект.
Можете ли вы изменить свой вопрос, включив пример ввода, с которым имеете дело, и нужный результат? –
да, я могу держаться – Jenny