在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js 數組中挨個數字相加如何做?

js 數組中挨個數字相加如何做?

let data = {}
let arr = [
    { width: 155 }, { width: 180 }, { width: 180 }, { width: 240 },
    { width: 130 }, { width: 280 }, { width: 100 }, { width: 50 }
]
for (let j = 0; j < arr.length; j++) {
    if (j >= 1) {
      console.log(j - 1, j)
      data[j] = arr[j] = [j - 1].with + arr[j] = [j].with
    }
  }
如何做到
data {
    0: arr[0] + arr[1],
    1: arr[0] + arr[1] + arr[2],
    2: arr[0] + arr[1] + arr[2] + arr[3] 
    ......
}
回答
編輯回答
默念

2018年9月10日08:27:41
上周五下班就美滋滋的跑路了,今天回來看到這樣一組數據

data {
    0: arr[0] + arr[1],
    1: arr[0] + arr[1] + arr[2],
    2: arr[0] + arr[1] + arr[2] + arr[3]
}

等同于

data {
    0: arr[0] + arr[1],
    1: data[0] + arr[2],
    2: data[1] + arr[3]
}

如果數據機構是數組[1,2,3,4,5]

arr = [1,2,3,4,5],sum = 0;
arr.map(v=>sum+=v)

clipboard.png
你會說,不對,第一個我不要,那么就加上.slice(1)咯。

clipboard.png

剛看了眼,剛剛好,你的數據也是數組下面這不就對了嗎?

clipboard.png


原答案
你這個描述看不太懂呀,步長為2?這樣嗎

1 2 3 4 i
2 4 6 8 i*2
1 3 5 7 i*2-1 
2017年4月25日 01:36
編輯回答
焚音
let arr = [
    { width: 155 }, { width: 180 }, { width: 180 }, { width: 240 },
    { width: 130 }, { width: 280 }, { width: 100 }, { width: 50 }
]

let result = arr.reduce((pre, cur, index) => {
    let sum = Object.keys(pre).length > 0 ? pre[index - 1] + cur.width : 0 + cur.width;
    pre[index] = sum;
    return pre;
}, {})

console.log('result', result)
2017年8月27日 15:26
編輯回答
葬愛
let data = arr.reduce((sum, cur, index) => {
  sum[index] = index === 0 ? cur.width : sum[index - 1] + cur.width
  return sum
}, {})
2017年12月7日 06:49