【发布时间】:2019-06-24 01:12:19
【问题描述】:
我在 javascript 中有一个数字数组 - 例如:
[ 100, 100, 100, 100 ]
鉴于数组必须总和为一个值 - 我将使用 100 作为示例,我正在尝试创建一个函数,该函数将按比例放大或缩小此数据集,从而导致每个值等于 25 - 例如。如果我运行此函数,则从数组中删除其中一个值,从而生成如下数组:
[25,25,25]
该函数将为剩余的每个条目返回 33.3333- 的值,因此它的总和仍为 100。
此外,如果我将其中一个值迭代 1,则创建一个数组:
[33.33333,33.33333,34.33333]
总和为 101,该函数需要按比例减少其他未修改的条目,以使总和正好为 100,这意味着我需要能够根据它是数组中的索引。我正在寻找这样的东西:
function ProportionallyScale(array,mustsumto,exclude = false) {
//do math
return array;
}
【问题讨论】:
-
最后一个数组的结果是什么?
-
101 - 该示例与我需要减少未修改值以适应刚刚修改的值的迭代这一事实有关。所以 33.33 的两个实例都需要减少 0.5(并且 34.33 保持不变)才能得到总和 100。
标签: javascript arrays math