Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Function_Sum - Fatal编程技术网

javascript数组值的总和

javascript数组值的总和,javascript,arrays,function,sum,Javascript,Arrays,Function,Sum,正在尝试创建表单以从单位数组中添加值。无法使函数计算总数正常工作 <script language="JavaScript" type="text/javascript"> function Calc(form) { var drink = new Array() drink [0] = form.drink0.value; drink [1] = form.drink1.value; drink [2] = form.drink2.value;

正在尝试创建表单以从单位数组中添加值。无法使函数计算总数正常工作

<script language="JavaScript" type="text/javascript">
function Calc(form) {

    var drink = new Array()
    drink [0] = form.drink0.value;
    drink [1] = form.drink1.value;
    drink [2] = form.drink2.value;

    var units = new Array()
    units [0] = 25;
    units [1] = 50;
    units [2] = 75;

    var number_units = new Array()
    form.units0.value = form.drink0.value * units[0];
    form.units1.value = form.drink1.value * units[1];
    form.units2.value = form.drink2.value * units[2]; 
    } 

function Calc_totals() {
    var answerValue = 0; 
    for(i=0; i < units.length; i++) 
    { 
    answerValue += Number(units[i]);
    } 
    form.total_units.value = answerValue;
}
</script>
我希望函数Calc_totals为单位总数,输出为form.total_units.value

HTML:

我要单位总数。
感谢您的帮助。

此代码的问题是,计算总数中的单位不可见。您有几个选择:

让它成为全球性的坏选择 把它当作论据通过 或者,您可以使用reduce ECMAScript 5功能计算总和-在旧浏览器中不起作用

var sum = units.reduce(function(a, b) { return a + b });
和ES6版本

var sum = units.reduce((a, b) => a + b);

此代码的问题在于,计算单位总计中的单位不可见。您有几个选择:

让它成为全球性的坏选择 把它当作论据通过 或者,您可以使用reduce ECMAScript 5功能计算总和-在旧浏览器中不起作用

var sum = units.reduce(function(a, b) { return a + b });
和ES6版本

var sum = units.reduce((a, b) => a + b);

定义计算之外的单位

<script language="JavaScript" type="text/javascript">
var units = new Array();
function Calc() {...}
=-=-=-=-=-=-=-=-=-=编辑添加更多代码=-=-=-=-=-=-=-=-=-=-=-=

<html>
<head>
<script language="JavaScript" type="text/javascript">
var units = new Array();
function Calc() {
    units [0] = 25;
    units [1] = 50;
    units [2] = 75;
}

function Calc_totals() {
    var answerValue = 0; 

    for(i=0; i < units.length; i++) 
    { 
        answerValue += Number(units[i]);
    } 
    alert(answerValue);
}

function foo()
{
    Calc();
    Calc_totals();
}
</script>
</head>
<body>
<a href="#" onclick="return foo();">Test</a>
 </body>
</html>

定义计算之外的单位

<script language="JavaScript" type="text/javascript">
var units = new Array();
function Calc() {...}
=-=-=-=-=-=-=-=-=-=编辑添加更多代码=-=-=-=-=-=-=-=-=-=-=-=

<html>
<head>
<script language="JavaScript" type="text/javascript">
var units = new Array();
function Calc() {
    units [0] = 25;
    units [1] = 50;
    units [2] = 75;
}

function Calc_totals() {
    var answerValue = 0; 

    for(i=0; i < units.length; i++) 
    { 
        answerValue += Number(units[i]);
    } 
    alert(answerValue);
}

function foo()
{
    Calc();
    Calc_totals();
}
</script>
</head>
<body>
<a href="#" onclick="return foo();">Test</a>
 </body>
</html>
在加法和的推入式数组之后,请尝试此操作

在加法和的推入式数组之后,请尝试此操作



请提供完整的代码和表单的示例输入。你想得到什么答案…?你试过谷歌吗?我用谷歌找到了答案。是的!在过去的两天里…卡住了。你应该阅读。请提供完整的代码和表单的示例输入。你想得到什么答案…?你试过谷歌吗?我用谷歌找到了答案。是的!在过去的两天里…卡住了。您应该阅读。@jmill23修复它的简单方法是将单元移到函数var units=[]之外;单位数组中的变量太多,无法使用此函数。已尝试循环,但不起作用。@jmill23解决此问题的简单方法是将单元移到函数var units=[]之外;单位数组中的变量太多,无法使用此函数。尝试了循环,但没有工作。如何从上面的函数调用它并通过循环传递它。问题似乎是Calc_totals并没有从单位中获取值?我说的是在Calc之外定义它,而不是在Calc中定义它,并使其全局化。删除Calc中的单位定义。Calc_totals无法看到该数组,因为它是Calc的本地数组。错误似乎与for循环有关。var answerValue=0;fori=0;i<单位长度;i++{answerValue+=Numberunits[i].value;}form.total_units.value=answerValue;如果我删除for循环:var answerValue=0;form.total_units.value=应答值;我的分数是0。所以它没有从单位[i]中获取值?是的,它没有从单位中获取值。正如我之前告诉过你们的,将单位数组定义为一个全局变量而不是局部变量。好吧,我现在明白你们的意思了,但我不知道怎么做。你能给出示例代码吗?谢谢。我如何从上面的函数调用它并通过循环传递它。问题似乎是Calc_totals并没有从单位中获取值?我说的是在Calc之外定义它,而不是在Calc中定义它,并使其全局化。删除Calc中的单位定义。Calc_totals无法看到该数组,因为它是Calc的本地数组。错误似乎与for循环有关。var answerValue=0;fori=0;i<单位长度;i++{answerValue+=Numberunits[i].value;}form.total_units.value=answerValue;如果我删除for循环:var answerValue=0;form.total_units.value=应答值;我的分数是0。所以它没有从单位[i]中获取值?是的,它没有从单位中获取值。正如我之前告诉过你们的,将单位数组定义为一个全局变量而不是局部变量。好吧,我现在明白你们的意思了,但我不知道怎么做。你能给出示例代码吗?谢谢