Javascript-通过添加先前的值来更新数组值

时间:2019-06-18 17:48:06

标签: javascript arrays

我有一个像这样的数组

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)

2 个答案:

答案 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)

并从累加器中的上一个元素获取运行总和。