Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:按比例;比例尺;求和为一个值的数字数组_Javascript_Arrays_Math - Fatal编程技术网

Javascript:按比例;比例尺;求和为一个值的数字数组

Javascript:按比例;比例尺;求和为一个值的数字数组,javascript,arrays,math,Javascript,Arrays,Math,我在javascript中有一个数字数组-例如: [ 100, 100, 100, 100 ] 假设数组必须求和为一个值-我将使用100作为示例,我尝试创建一个函数,该函数将按比例放大或缩小此数据集,从而使每个值等于25-例如。如果运行此函数,则从数组中删除其中一个值,从而生成如下数组: [25,25,25] 对于剩余的每个条目,该函数将返回33.3333-的值,因此其总和仍然精确到100 此外,如果我将其中一个值乘以1,则创建一个数组: [33.33333,33.33333,34.3333

我在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;
}

以下是您将如何处理此问题:

  • 查找数组中所有值的总和
  • 将每个值除以总和
  • 将每个值乘以100

这显然是一个家庭作业问题,所以我不会为您编写代码,但对于每一个问题,您都需要一个for()循环。祝你好运

以下是您处理此问题的方法:

  • 查找数组中所有值的总和
  • 将每个值除以总和
  • 将每个值乘以100

这显然是一个家庭作业问题,所以我不会为您编写代码,但对于每一个问题,您都需要一个for()循环。祝你好运

最后一个数组的结果是什么?101-这个例子与我需要减少未修改的值以适应刚刚修改的值的迭代这一事实有关。因此33.33的两个实例都需要减少0.5(和34.33不变),以得到100的总和。最后一个数组的结果是什么?101-这个例子与我需要减少未修改的值以适应刚刚修改的值的迭代这一事实有关。因此,33.33的两个实例都需要减少0.5(34.33不变),以得到100.33的总和。它实际上与我在我的网站上构建的一个简单工具有关,当用户添加或删除一个div,或者增加一个+-1%的大小时,它需要将一堆div重新缩放到一个容器中,总高度为100%。您的方法适用于所有情况,但数组中的一个值增加时除外,其余值需要增加/减少到100(关于从计算中排除一个值的部分)。我该怎么做呢?就用CSS吧。这就是在用户输入动态创建的内容时所需要的一切——这就是我使用JS的原因。在JS中运行计算之后,我将使用jQuery用新的百分比更新CSS。谢谢。它实际上与我在我的网站上构建的一个简单工具有关,当用户添加或删除一个div,或者增加一个+-1%的大小时,它需要将一堆div重新缩放到一个容器中,总高度为100%。您的方法适用于所有情况,但数组中的一个值增加时除外,其余值需要增加/减少到100(关于从计算中排除一个值的部分)。我该怎么做呢?就用CSS吧。这就是在用户输入动态创建的内容时所需要的一切——这就是我使用JS的原因。在JS中运行计算之后,我将使用jQuery用新的百分比更新CSS。