【发布时间】:2020-05-09 21:09:52
【问题描述】:
我正在尝试计算总结果等于 100% 的数组的百分比。
let dataArr = [ 10232 , 23212, 98321, 32909, 29121, 20123 ]
我从计算数组的总和开始。
这是jsfiddle
let dataArr = [ 10232 , 23212, 98321, 32909, 29121, 20123 ]
let dataSum = 0
let finalSum = []
for (let i = 0; i < dataArr .length; i++) {
dataSum += dataArr[i]
}
// console.log dataSum = 213918
dataSum 正在返回我期望的值
在同一个循环中,我现在尝试将数组的每个单独索引除以 datasum * 100 以计算百分比。例如,
index 0 -> ` 10232 / datasum * 100` = 4.8%
index 1 -> ` 23212 / datasum * 100` = 10.9%
.... 在整个数组中以此类推。并且所有百分比加起来为 100%
我试图在处理 dataSum 的同一个 forloop 中处理逻辑,但我在为它提出 javascript 逻辑时遇到问题。
这是我的尝试:
for (let i = 0; i < dataArr .length; i++) {
dataSum += finalArr[i]
finalsum = finalArr[i] / dataSum * 100
}
//console log finalSum = [100, 69.4055734959933, 74.61844951238949, 19.984332681540497, 15.026703475321861, 9.40687553174581] having the values equaling more then 100%
我的预期结果是返回 dataArr 中的所有值,每个索引的百分比总计为 100%
【问题讨论】:
-
你除以
dataSum,它在每次迭代中都会发生变化。在不知道总数的情况下,您无法计算每个值占总数的百分比。
标签: javascript arrays loops