我有两个数组:
const initialAmount = [50]
const transactionAmounts = [ -10, 10, 10, -1, -5, -10, 5, 5, 5, 10, 10, 10, 1, -1, -2, -5, -10 ]
如何返回一个数组,将transactionAmounts
中的每个值添加到initialAmount
?(不包括第一个,它应该是初始值(
例如,它应该返回:
const valueAfterEachTransaction = [50, 40, 50, 60, 59, 54, 44, 49, 54, 59, 69, 79, 89, 90, 89, 87, 82, 72]
您可以对和进行闭包,并获取两个数组的所有元素来映射实际和。
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)
也许我在这里缺少了一些东西,但在处理了缺少的初始值之后,这似乎是一个简单的map
。
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}
我很好奇你潜在的需求是什么。这似乎是一个奇怪的要求。为什么在数组中传递初始值?为什么有一个隐含的0
要添加到第一个。这是XY问题吗?