Javascript 平均问题

Javascript 平均问题,javascript,media,Javascript,Media,我在javascript中有以下函数来计算平均值: function calculaMediaFinal () { var soma = 0; for(var i = 1; i>5; i++) { soma += parseInt(document.getElementById('resultado' + i).value, 10); } var media = soma / 5; var inputCuboMedia = d

我在javascript中有以下函数来计算平均值:

function calculaMediaFinal () {
    var soma = 0;
    for(var i = 1; i>5; i++) { 
        soma += parseInt(document.getElementById('resultado' + i).value, 10); 
    }

    var media = soma / 5;

    var inputCuboMedia = document.getElementById('ConcretizaObj');
    inputCuboMedia.value = parseInt(media, 10);
}

function ContarObjetivos() {
    let contador = 0;
    if(document.getElementById('resultado' + i).value) {
        contador++;
    }
}

但我有一个问题,就是我最多放了5个,这是不正确的,因为用户是选择他想要多少结果的人。也就是说,如果用户只想要4,则不能填充5。如果没有数字5,但有用户想要的结果数,我如何平均?

如果我理解您的问题是正确的,那么您想要这样的结果。创建一个新的数字输入字段,用于存储用户想要的金额。将输入字段的值放入变量并在代码中使用?而且它可能需要是“如果我理解你的问题是正确的,你想要这样的东西。创建一个新的数字输入字段,用于存储用户想要的金额。将输入字段的值放入变量并在代码中使用?而且它可能需要是“你可以这样做

  • 创建
    input
    元素,让用户将每个数字传递到元素中,并用空格分隔
  • 创建
    按钮
    ,该按钮将触发计算平均值的代码
  • 创建将存储结果的元素
进行实际计算

  • 获取输入字段的值,在空格处拆分它,
    '
    ,使用
    trim
  • 使用
    reduce
  • 将总和除以提供的数字的数量
const input=document.querySelector('input');
const btn=document.querySelector('button');
const res=document.querySelector('p>span');
函数getAverage(){
const values=input.value.split(“”).map(v=>v.trim());
常量和=值。减少((acc,v)=>acc+数字(v),0);
res.textContent=(sum/values.length);
}
// 1 2 3 4 5 6 7 8 9 10
btn.addEventListener('click',getAverage)

平均

结果:

您可以这样做

  • 创建
    input
    元素,让用户将每个数字传递到元素中,并用空格分隔
  • 创建
    按钮
    ,该按钮将触发计算平均值的代码
  • 创建将存储结果的元素
进行实际计算

  • 获取输入字段的值,在空格处拆分它,
    '
    ,使用
    trim
  • 使用
    reduce
  • 将总和除以提供的数字的数量
const input=document.querySelector('input');
const btn=document.querySelector('button');
const res=document.querySelector('p>span');
函数getAverage(){
const values=input.value.split(“”).map(v=>v.trim());
常量和=值。减少((acc,v)=>acc+数字(v),0);
res.textContent=(sum/values.length);
}
// 1 2 3 4 5 6 7 8 9 10
btn.addEventListener('click',getAverage)

平均

结果:

未执行您的循环:


中,第二个参数是要执行迭代的条件(true=execute)。将
更改为
未执行循环:



中,第二个参数是要执行迭代的条件(true=execute)。将
更改为
您的循环体将永远不会执行一次。首先要做的是修复代码。然后uou需要向用户提供某种类型的输入,用户将在其中决定有多少个数字。然后,您需要获取输入并将其用作脚本中的变量。@MateuszJ我有一个php表格,可以获取每个用户输入的值,我想要的是填充行的平均值。当我说我有多少行时,这就行了,但是如果用户写的行比我说的多或少,它就不再起作用了。@RobbyCornelissen这段代码起作用,但有一个限制,目标是接受这个限制。正如@RobbyCornelissen所说的,你的循环将不会被执行
for(var i=1;i>5;i++)
i
的初始值为1。循环的活动状态是
i>5
您的循环体将永远不会执行一次。首先要修复代码。然后uou需要向用户提供某种类型的输入,用户将在其中决定有多少个数字。然后,您需要获取输入并将其用作脚本中的变量。@MateuszJ我有一个php表格,可以获取每个用户输入的值,我想要的是填充行的平均值。当我说我有多少行时,这就行了,但是如果用户写的行比我说的多或少,它就不再起作用了。@RobbyCornelissen这段代码起作用,但有一个限制,目标是接受这个限制。正如@RobbyCornelissen所说的,你的循环将不会被执行
for(var i=1;i>5;i++)
i
的初始值为1。循环的活动状态是
i>5
我按照你告诉我的做了,但是给我NaN@user9864805啊,是的,对不起,我犯了一个错误,我在回答中编辑了可变金额,您能再试一次吗?对不起,我不知道您在哪里更改了。在我的回答中,我将可变金额更改为:'var amount=parseInt(document.getElementById(“userAmount”).value);'我照你说的做了,但是给我NaN@user9864805啊,是的,对不起,我犯了一个错误,我在回答中编辑了可变金额,您能再试一次吗?对不起,我不知道您在哪里更改了。在我的回答中,我将可变金额更改为:'var amount=parseInt(document.getElementById(“userAmount”).value);'我有一个Php表格,我想要用户填充的行的平均值,明白吗?我如何使用你的代码来计算填充行的平均值?@user9864805你的意思是你有一个html表?@user9864805如果你需要一个用于某种精确结构的代码,那么你需要显示你的html是什么样子的。我有一个Php表,我想要一个已填充行的平均值
<input type="number" id="userAmount" />
function calculaMediaFinal () {
    var soma = 0;
    var amount = parseInt(document.getElementById("userAmount").value);
    for(var i = 1; i<=amount; i++) { 
        soma += parseInt(document.getElementById('resultado' + i).value, 10); 
    }
    var media = soma / amount;

    var inputCuboMedia = document.getElementById('ConcretizaObj');
    inputCuboMedia.value = parseInt(media, 10);
    }

    function ContarObjetivos(){
        let contador = 0;
            if(document.getElementById('resultado' + i).value) {
                contador++;
            }
    }