我有一个像这样的数组
arr=[20, 40, 40, 40]
,我想将其更新为arr=[20, 60, 100, 140]
我不想更新第一个值,但是以下值应该是该值加上数组中之前的值
我有点在这里工作,但是它必须在从前一个循环更新后添加前一个值,而且我必须在末尾单独添加第一个值。
let arr = [20, 40, 40, 40]
let arrUpdate = []
for(let n=0; n<arr.length; n++){
arrUpdate.push(arr[n] + (arr[n-1]))
}
arrUpdate[0] = arr[0]
console.log(arrUpdate)
答案 0 :(得分:3)
您可以通过采用起始值为零的sum变量来映射新的sums。
let arr = [20, 40, 40, 40],
sum = 0,
result = arr.map(v => sum += v);
console.log(result)
答案 1 :(得分:1)
您也可以使用Array.reduce:
let arr = [20, 40, 40, 40]
let result = arr.reduce((r,c,i) => (r.push(i ? c + r[i-1] : c), r), [])
console.log(result)
并从累加器中的上一个元素获取运行总和。