Я группируя мой массив, используя эту функцию:массив Group с группеПо
Array.prototype.groupBy = function(prop) {
return this.reduce(function(groups, item) {
var val = item[prop];
groups[val] = groups[val] || [];
groups[val].push(item);
return groups;
}, {});
}
я использую его в другой функции, где я получить дату
vm.parkings.forEach(function(value, key) {
value.receiptsByDate = [];
if (value.receipts != undefined) {
value.receipts.forEach(function(rcpts) {
var date = rcpts.date.split('/');
var newDate = date[2] + '/' + date[0];
var year = date[2];
var month = date[0];
var price = rcpts.value;
value.receiptsByDate.push({newDate, price, month, year});
value.newReceipt = value.receiptsByDate.groupBy('month');
})
}
})
Результат:
В моем newReceipt у меня есть объекты, отсортированные по месяцам, нормально.
Я хотел бы рассчитать цены в зависимости от месяца. Пример: внутри массива три, доступ к объектам и суммирование цен.
Это лучший способ сделать это?
EDIT
Я использовал подчеркивание, и это работает. Это выглядит следующим образом:
var result = _.groupBy(receiptsByDate, "month");
var out = _(result).map(function(g, key) {
return {month: key, price: _(g).reduce(function(m, x){return m + x.price}, 0)}
})
Рассмотрим с помощью lodash (lodash.com), чтобы сделать алгоритмы –
я постараюсь сделать это –