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

Javascript 金额计算不当

Javascript 金额计算不当,javascript,html,Javascript,Html,程序应执行以下操作:用户应在右侧的输入字段中输入数字,然后单击计算。该值将被推送到数组中。这将做X次。此时X硬编码为5,但这不是问题所在 问题是,在数组中推送最后一个数字后,将计算数组的和并将其显示在网页上。可视化不是问题,我非常确信计算是正确的。我认为问题在于如何在数组中读取或输入输入。不过我可能错了 最后一件事,计算所有内容的函数是compute1。 编辑:实际错误:未捕获类型错误:无法读取null的属性“值” 这是完整的源代码: <!DOCTYPE HTML> <head

程序应执行以下操作:用户应在右侧的输入字段中输入数字,然后单击计算。该值将被推送到数组中。这将做X次。此时X硬编码为5,但这不是问题所在

问题是,在数组中推送最后一个数字后,将计算数组的和并将其显示在网页上。可视化不是问题,我非常确信计算是正确的。我认为问题在于如何在数组中读取或输入输入。不过我可能错了

最后一件事,计算所有内容的函数是compute1。 编辑:实际错误:
未捕获类型错误:无法读取null的属性“值”

这是完整的源代码:

<!DOCTYPE HTML>
<head>
<title>Asd</title>
    <style>
        .btn{
            width : 30px;
        }
    .btn2{
            width : 100px;
            height : 40px;
        }
    </style>
</head>
<body>
<center>    
    <table>
        <tr>
            <td>Number of elements:</td><td><input type="number" id="textField" class="btn"></input></td>
            <td>Please enter a number.</td> <td><input type="number" id="textFiledInp" class="btn"></input></td>        
        </tr>
    </table>
    <button class="btn2" onclick="compute1()" >compute</button>
    <p id="output"></p>
</center>
</body>
<script>
//var eleNum = parseInt(document.getElementById("textField"));
var eleNum = 5;
var arr = new Array;
function compute1()
{
    console.log("hi");
    if(eleNum > 0)
    {
        eleNum--;
        arr.push(parseInt(document.getElementById("textFieldInp").value));
        console.log(arr[arr.length-1]);
    }
    else{
        var sum = 0;
        for(var i = 0; i < arr.size; i++)
        {
            sum+= arr[i];
        }
        document.getElementById("output").innerHTML = sum;
    }
}
</script>

自闭症
.btn{
宽度:30px;
}
.btn2{
宽度:100px;
高度:40px;
}
元素数:
请输入一个数字。
计算

//var eleNum=parseInt(document.getElementById(“textField”); var-eleNum=5; var-arr=新数组; 函数compute1() { 控制台日志(“hi”); if(eleNum>0) { eleNum--; arr.push(parseInt(document.getElementById(“textFieldInp”).value)); 控制台日志(arr[arr.length-1]); } 否则{ var总和=0; 对于(变量i=0;i
据我所知,您的计算是正确的,但缺少一个括号
console.log(arr[arr.length-1)

应该是:

        console.log(arr[arr.length-1]);
id="textFieldInp"

据我所知,您的计算是正确的,但缺少一个括号
console.log(arr[arr.length-1)

应该是:

        console.log(arr[arr.length-1]);
id="textFieldInp"

您输入的ID错误:

<td>Please enter a number.</td> <td><input type="number" **id="textFiledInp"** class="btn"></input></td>
id=“textFiledInp”
更改为
id=“textFieldInp”
,它应该可以工作

并且
size
不是javascript数组的正确属性。您应该在循环中使用
length
属性

如果你想输入你声明的数字量,你应该这样写(我不知道这是否是你想要的):

函数计算1()
{
控制台日志(“hi”);
if(eleNum>0)
{
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value));
控制台日志(arr[arr.length-1]);
}
否则{
var总和=0;
对于(变量i=0;i
您输入的ID错误:

<td>Please enter a number.</td> <td><input type="number" **id="textFiledInp"** class="btn"></input></td>
id=“textFiledInp”
更改为
id=“textFieldInp”
,它应该可以工作

并且
size
不是javascript数组的正确属性。您应该在循环中使用
length
属性

如果你想输入你声明的数字量,你应该这样写(我不知道这是否是你想要的):

函数计算1()
{
控制台日志(“hi”);
if(eleNum>0)
{
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value));
控制台日志(arr[arr.length-1]);
}
否则{
var总和=0;
对于(变量i=0;i
您的元素的
id
中有一个输入错误:

id="textFiledInp"
……应该是:

        console.log(arr[arr.length-1]);
id="textFieldInp"
否则,
getElementById()
找不到元素并返回
null
,因此会出现您引用的错误消息

您的
for
循环正在尝试使用
arr.size
,但它应该是
arr.length

eleNum
预设为
5
似乎有点奇怪,但我不完全清楚您试图在那里做什么,因此我不确定建议是什么。我怀疑您只需要将注释掉的行移到函数中,然后添加
.value
(并取消注释):


此外,在未指定第二个参数中的基数的情况下,切勿使用
parseInt()
。这对于用户输入的数据尤其重要。(因为否则浏览器可能会将前导0解释为八进制,前导0x解释为十六进制。)

您的元素的
id
中存在键入错误:

id="textFiledInp"
……应该是:

        console.log(arr[arr.length-1]);
id="textFieldInp"
否则,
getElementById()
找不到元素并返回
null
,因此会出现您引用的错误消息

您的
for
循环正在尝试使用
arr.size
,但它应该是
arr.length

eleNum
预设为
5
似乎有点奇怪,但我不完全清楚您试图在那里做什么,因此我不确定建议是什么。我怀疑您只需要将注释掉的行移到函数中,然后添加
.value
(并取消注释):


此外,在未指定第二个参数中的基数的情况下,切勿使用
parseInt()
。这对于用户输入的数据尤为重要(否则浏览器可能会将前导0解释为八进制,前导0x解释为十六进制)

修复HTML中的打字错误后,应将代码更改为:

var eleNum = 5;
var arr = []; //see explanation

function compute1(value) {
    console.log("hi");
    if (eleNum > 0) {
        eleNum--;
        arr.push(parseInt(document.getElementById("textFieldInp").value || 0, 10)); // see explanation
        console.log(arr[arr.length - 1]);
    } else {
        var sum = 0;
        for (var i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        document.getElementById("output").innerHTML = sum;
    }
}
var eleNum=5;
var arr=[];//请参阅说明
函数compute1(值){
控制台日志(“hi”);
if(eleNum>0){
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value | | | 0,10));//参见说明
控制台日志(arr[arr.length-1]);
}否则{
var总和=0;
对于(变量i=0;i