Используя методы функционального программирования javascript (например, map/reduce), как можно агрегировать/подсчитывать поле status
из arr1
и преобразовывать его в массив объектов ключ/значение в arr2
.
arr1 = [
{'task':'do something 1', 'status':'done'} ,
{'task':'do something 2', 'status':'done'} ,
{'task':'do something 3', 'status':'pending'} ,
{'task':'do something 4', 'status':'done'}
];
// Aggregate arr1 `status` field and transform to:
arr2 = [
{key:'done', value: 3},
{key:'pending', value: 1}
];
Вот мое частичное решение WIP, которое обрабатывает только часть агрегации. Мне все еще нужна часть преобразования.
var arr2 = arr1.map(function(item) {
return item.status;
}).reduce(function(acc,curr,idx){
if(acc[curr] === undefined) acc[curr] = 1;
else acc[curr] += 1;
return acc;
}, []);
[done: 3, pending: 1]
, или, другими словами, он обрабатывает массив как объект и не возвращает ожидаемый результат? - person adeneo   schedule 03.02.2016