Actualmente estoy estudiando Vue y creando una cuenta personal para la empresa de gasolina.
Tengo una API IMG en el registro de la consola dentro de la matriz data , también hay una matriz de transfer , también se puede ver en la imagen de abajo.
Estos datos se emiten así :
Quiero obtener la cantidad de ingresos en cada tankfarme . Cómo puedo hacerlo ?
de alguna manera pude obtener el monto del gasto, pero recibe el monto total, y no en una granja de tanques. Aquí está el código
const getSumExpense = computed(() => { let array = getTransfers.value.transfers.data; let sum = 0; array.forEach((element) => { let arrayIncome = element.transfer; arrayIncome.forEach((el) => { sum = sum + el.expense; }); }); return sum; });por favor ayúdenme, si no entienden lo que escribí, también díganmelo, trataré de escribir mejor
Puede Array.prototype.reduce()
Código:
const arrayIncome = [{expense: 20}, {expense: 30}, {expense: 40}] const sum = arrayIncome.reduce((a, { expense: e }) => a + e, 0) console.log(sum)Si desea obtener la suma de una granja de tanques específica, primero debe filtrar la matriz y luego, con la ayuda de reduce , puede sumar los registros.
const data= [{tankfarm: 'cymma', transfer: [{expense: 10}, {expense: 20}]}] const result = data.filter(element => element.tankfarm === 'cymma')[0].transfer.reduce((a, { expense: e }) => a + e, 0) console.log("cymma expense", result)