Tengo 2 matrices:
const initialAmount = [50]
const transactionAmounts = [ -10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10 ]
¿Cómo devuelvo una matriz que agrega cada valor de los montos de transactionAmounts al initialAmount ? (excluyendo el primero, que debería ser el valor inicial)
Por ejemplo, debería devolver:
const valueAfterEachTransaction = [50, 40, 50, 60, 59, 54, 44, 49, 54, 59, 69, 79, 89, 90, 89, 87, 82, 72]
Podría tomar un cierre sobre la suma y obtener todos los elementos de ambas matrices para mapear la suma real.
const initial = [50], transactions = [-10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10], result = [...initial, ...transactions].map((s => v => s += v)(0)); console.log(...result); const initialAmount = [50] const transactionAmounts = [ -10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10 ] const newArray = [initialAmount[0]] let value = initialAmount[0] let i = 0 do { value = value + transactionAmounts[i] newArray[i+1] = value i++; } while (i < transactionAmounts.length); console.log(newArray) const initialAmount = [50] const transactionAmounts = [ -10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10 ] const newArray = [initialAmount[0]] let value = initialAmount[0] let i = 0 do { value = value + transactionAmounts[i] newArray[i+1] = value i++; } while (i < transactionAmounts.length); console.log(newArray)Tal vez me estoy perdiendo algo aquí, pero este parece ser un map sencillo, después de manejar el valor inicial que falta.
const combine = ([x], ys) => [0, ...ys] .map (y => x + y) const initialAmount = [50] const transactionAmounts = [-10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10] console .log (combine (initialAmount, transactionAmounts)) .as-console-wrapper {max-height: 100% !important; top: 0} Tengo curiosidad por saber cuál es su necesidad subyacente. Esto parece un requisito extraño. ¿Por qué se pasa el valor inicial en una matriz? ¿Por qué hay un 0 implícito para agregar al primero? ¿Es este un problema XY ?