Javascript 平均问题
我在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
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++;
}
}