我有一个“ImputacionData”的结果,并且通过减少它我将它与对象的属性分组:
this.imputacionesDatas = data;
this.imputacionesAndAusencias = this.imputacionesDatas.reduce(function (r, a) {
r[a.empleadoId] = r[a.empleadoId] || [];
r[a.empleadoId].push(a);
return r;
}, Object.create(null));
我不知道如何处理结果的问题需要将其放在Map中才能在屏幕上处理这些数据并能够绘制它们。
我不知道如何将“reduce”的结果放在:
中Map <number, Array <ImputacionData >>;
答案 0 :(得分:2)
您可以使用Object.entries
获取数组中的键和值。
this.imputacionesAndAusencias = Object.entries(this.imputacionesDatas.reduce(function (r, a) {
r[a.empleadoId] = r[a.empleadoId] || [];
r[a.empleadoId].push(a);
return r;
}, Object.create(null)));
如果您想获得Map
,则可以将地图作为返回值。
this.imputacionesAndAusencias = this.imputacionesDatas.reduce(function (map, object) {
if (!map.has(object.empleadoId)) {
return map.set(object.empleadoId, [object]);
}
map.get(object.empleadoId).push(object);
return map;
}, new Map);
答案 1 :(得分:0)
您可以将累加器的初始值设置为new Map()
,然后使用Map方法设置其值。
const input = [{
empleadoId: 5
}, {
empleadoId: 5
}, {
empleadoId: 6
}];
const output = input.reduce((map, item) => {
const { empleadoId } = item;
if (map.has(empleadoId)) map.get(empleadoId).push(item);
else map.set(empleadoId, [item]);
return map;
}, new Map());
console.log(...output);
&#13;