如何在JavaScript中对reduce中的数组求和?

如何在JavaScript中对reduce中的数组求和?,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我按照一个例子来使用reduce和求和一些键的值,但是现在,我想求和这个reduce中的一个对象数组的值 这就是我所拥有的: groupConceptos(){ var result = []; this.auxTablaPrincipal.reduce((res, value, index) => { var aux = [];

我按照一个例子来使用reduce和求和一些键的值,但是现在,我想求和这个reduce中的一个对象数组的值

这就是我所拥有的:

groupConceptos(){
        var result = [];                        
        this.auxTablaPrincipal.reduce((res, value, index) => {     
            var aux = [];               
            value.conceptoImpuesto.reduce((ant, nuevo) => {
                if(!ant[nuevo.nombre]){
                    ant[nuevo.nombre] = {
                        base: 0,
                        importe: 0,
                        impuesto: nuevo.impuesto,
                        local: nuevo.local,
                        nombre: nuevo.nombre,
                        tasaOcuota: nuevo.tasaOcuota,
                        tipoFactor: nuevo.tipoFactor,
                        tipoImpuesto: nuevo.tipoImpuesto
                    };
                    aux.push(ant[nuevo.nombre])
                }
                ant[nuevo.nombre].base += parseFloat(nuevo.base);
                ant[nuevo.nombre].importe += parseFloat(nuevo.importe);
                return ant
            }, {});

            if(!res[value.descripcion]){                   
                res[value.descripcion] = {                        
                    conceptoImpuesto: aux,//value.conceptoImpuesto,                        
                    cantidad: 0,
                    claveInterna: value.claveInterna,
                    claveProdServ: value.claveProdServ,
                    claveUnidad: value.claveUnidad,
                    descripcion: value.descripcion,
                    descuento: 0,                        
                    importe: 0,
                    subtotal: 0,
                    porcentajeIva: value.porcentajeIva,
                    precioPublico: value.precioPublico,
                    productoId: value.productoId,
                    sumaImporte: 0, 
                    totalIva: value.totalIva,
                    totalPagado: value.totalPagado,
                    unidad: value.unidad,
                    valorUnitario: value.valorUnitario                                          
                };
                result.push(res[value.descripcion])
            }             
            res[value.descripcion].cantidad += parseInt(value.cantidad);
            res[value.descripcion].descuento += parseInt(value.descuento);
            res[value.descripcion].importe += parseFloat(value.importe); 
            res[value.descripcion].subtotal += parseFloat(value.subtotal);                         
            res[value.descripcion].sumaImporte += parseInt(value.sumaImporte);                                                                                   
            return res
        }, {});

        this.tablaPrincipal = result;  
            this.tablaPrincipal.forEach(element => {
                element.conceptoImpuesto.forEach(concepto => {
                    this.auxConceptosImpuestos.push({
                        base: concepto.base,
                        importe: concepto.importe,
                        impuesto: concepto.impuesto,
                        local: concepto.local,
                        nombre: concepto.nombre,
                        tasaOcuota: concepto.tasaOcuota,
                        tipoFactor: concepto.tipoFactor,
                        tipoImpuesto: concepto.tipoImpuesto
                    })
                });
            });                                       
    },
*this.auxtablabrincipal是一个数组,我使用它来减少并分配给this.tablePrincipal

this.tablablincipal
是this.auxtablablincipal减少的结果。
conceptoImpuesto
是一个对象数组,我需要对如下值求和:
res[value.description].cantidad+=parseInt(value.cantidad)

因此,我使用相同的方法对
this.auxTablaPrincipal
的reduce的
value.conceptoImpuesto
进行约简和求和,然后将
aux
数组分配给
this.auxTablaPrincipal
conceptoImpuesto

但这种方法不起作用

如何在reduce方法中对数组的值求和

编辑

例如,如果一个新值与其在数组中的值相同,我将使用reduce to group value。所以我想对
conceptoImpuesto
数组的值求和,以应用conceptoImpuesto的和


在图中,“canatidad”的值为2。因此,数组
conceptoImpuesto
的“base”和“import”的值相加,就像我在代码中所做的那样,因此您要做的是用0初始化reduce,然后从每个数组项添加到reduce中。例如,如果您有这样一个数组:

const employees = [
  { name: 'Bob', yearsExperience: 5 },
  { name: 'Juanita', yearsExperience: 10 },
  { name: 'Shen', yearsExperience: 12 }
]
如果您想要累积团队经验,您可以这样做:

employees.reduce((accumulator, value) => {
  accumulator += value.yearsExperience
  return accumulator
}, 0)

reduce
返回一个值,因此您可能需要使用它(将其存储到变量中,或返回它,…)。您能给出一个数组示例和预期结果吗?@ibrahimmahrir我用一个可能重复的示例更新问题。。。那么预期的输出呢?是的,但是它的值之和必须是一个数组?和是一个数组吗?你的意思是你需要做一组转换吗?就像我问题中的代码一样
res[value.description].cantidad+=parseInt(value.cantidad)。。。构建一个数组并求和值,但在数组内部有另一个数组,该数组具有相加的值,因此,构建一个数组以分配给
this.auxtablabrincipal
conceptoImpuesto
,最后分配给this.tablabrincipal this
this.tablabrincipal=result
<代码>结果
是带有reduce的变量