JS 数组如何计算所有子级的总数并在检查条件时更新状态

问题描述 投票:0回答:1

我正在使用 ReactJS,我想做一些检查和更新状态

示例:我有一个像这样的数组: const array=[70, 180, 70, 70] 和另一个值 const totalValue=350

我想映射数组并将每个元素添加到前一个元素,当数量大于totalValue时我应该停止并更新状态。

例如:70 + 180 = 250 所以我应该继续 70+80+70 = 320 我应该继续

70+180+70+70=390; 所以我应该停止并将我的状态更新为 3(3 是我停止时数组的长度)

我尝试过地图和一些数组[索引],但很难理解.. 这是我尝试过的:

[ 70, 180, 70, 70 ].map((el,index,array) => {
return el + array[index]
})

对不起我的英语

[ 70, 180, 70, 70 ].map((el,index,array) => { return el + array[index] })

javascript arrays
1个回答
0
投票

这只是使用 for 循环来实现您需要的结果。但这可能不是最好的方法。

const totalValue = 350
const array = [70,180,70,70]

function calcSumAndState(total, arr) {
    var sum = 0,i = 0
  for (i = 0; i<arr.length; i++) {
    sum+=arr[i]
    if (sum > total) {
        break;
    }
  }
  return {
    sum:sum,
    state:i
  }
}
var s = calcSumAndState(totalValue, array)
console.log(s.sum)
console.log(s.state)

© www.soinside.com 2019 - 2024. All rights reserved.