Hola, estoy bastante confundido con este problema. Tengo una función bastante simple que cambia los valores de mis parámetros aunque no quiero este comportamiento. Entonces, cuando llamo a la función, quiero que genere los mismos valores cada vez, pero en cambio, su salida aumenta. ¿Qué estoy haciendo mal y especialmente por qué (tengo más antecedentes de Python).
function calcSumHist(arr) { const sum = [] for (const hist of arr) { for (const entry of hist) { const index = sum.findIndex(x => x[0] === entry[0]) index === -1 ? sum.push(entry) : sum[index][1] += entry[1] } } return sum } const myHist1 = [["a", 1000], ["b", 1000], ["c", 1000]] const myHist2 = [["a", 500], ["b", 500], ["c", 500]] function getResult(arr) { const result = calcSumHist([myHist1, myHist2]) return result } console.log(getResult([myHist1, myHist2])); console.log(getResult([myHist1, myHist2])); console.log(getResult([myHist1, myHist2])); .as-console-wrapper { max-height: 100% !important; }Sale esto:
> Array [Array ["a", 1500], Array ["b", 1500], Array ["c", 1500]] > Array [Array ["a", 2000], Array ["b", 2000], Array ["c", 2000]] > Array [Array ["a", 2500], Array ["b", 2500], Array ["c", 2500]]Pero quiero esto:
> Array [Array ["a", 1500], Array ["b", 1500], Array ["c", 1500]] > Array [Array ["a", 1500], Array ["b", 1500], Array ["c", 1500]] > Array [Array ["a", 1500], Array ["b", 1500], Array ["c", 1500]]