Javascript 使用for of循环的数组中所有元素的总和/平均值
我已经阅读了关于for of loop的其他问题,并提出了计算数组中所有元素的平均值和总和的代码,似乎有些不正确,请提供帮助:Javascript 使用for of循环的数组中所有元素的总和/平均值,javascript,arrays,html,loops,for-of-loop,Javascript,Arrays,Html,Loops,For Of Loop,我已经阅读了关于for of loop的其他问题,并提出了计算数组中所有元素的平均值和总和的代码,似乎有些不正确,请提供帮助: vari; elmt=[] elmt[0]=0; elmt[1]=1; elmt[2]=2; elmt[3]=3; elmt[4]=4; elmt[5]=7; elmt[6]=8; elmt[7]=9; elmt[8]=10; elmt[9]=11; var总和=0; 对于(让elmt之和){ sum+=parseInt(elmt[i],10); } var avg=
vari;
elmt=[]
elmt[0]=0;
elmt[1]=1;
elmt[2]=2;
elmt[3]=3;
elmt[4]=4;
elmt[5]=7;
elmt[6]=8;
elmt[7]=9;
elmt[8]=10;
elmt[9]=11;
var总和=0;
对于(让elmt之和){
sum+=parseInt(elmt[i],10);
}
var avg=总和/长度;
文件。写入(“所有元素的总和为:“+sum+”,平均值为:“+avg”)代码>
JavaScript循环
您正在使用两种循环。您可以选择普通循环,也可以选择循环:
您正在使用两种循环。您可以选择普通循环,也可以选择循环:
试试下面的方法
var elmt=[0,1,2,3,4,7,8,9,10,11];
//使用reduce()
函数totalReduce(arr){
如果(!Array.isArray(arr))返回;
返回arr.reduce((a,v)=>a+v);
}
//用于循环
函数totalForLoop(arr){
如果(!Array.isArray(arr))返回;
设totalNumber=0;
对于(设i=0,l=arr.length;i{
总和+=每个;
});
回报金额;
};
var总和=总减少量(elmt);
console.log(“使用reduce求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=总ForLoop(elmt);
log(“使用totalForLoop求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=总时间(elmt);
console.log(“使用totalWhile求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=每小时总流量(elmt);
log(“使用totalForEach求和:+Sum+”平均值:+Sum/elmt.length”)代码>请尝试以下操作
var elmt=[0,1,2,3,4,7,8,9,10,11];
//使用reduce()
函数totalReduce(arr){
如果(!Array.isArray(arr))返回;
返回arr.reduce((a,v)=>a+v);
}
//用于循环
函数totalForLoop(arr){
如果(!Array.isArray(arr))返回;
设totalNumber=0;
对于(设i=0,l=arr.length;i{
总和+=每个;
});
回报金额;
};
var总和=总减少量(elmt);
console.log(“使用reduce求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=总ForLoop(elmt);
log(“使用totalForLoop求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=总时间(elmt);
console.log(“使用totalWhile求和:“+Sum+”平均值:“+Sum/elmt.length”);
总和=每小时总流量(elmt);
log(“使用totalForEach求和:+Sum+”平均值:+Sum/elmt.length”)代码>
JavaScript循环
var i;
elmt=[]
elmt[0]=0;
elmt[1]=1;
elmt[2]=2;
elmt[3]=3;
elmt[4]=4;
elmt[5]=7;
elmt[6]=8;
elmt[7]=9;
elmt[8]=10;
elmt[9]=11;
var总和=0;
对于(elmt的x){
总和+=x;
}
var avg=总和/长度;
文件。写入(“所有元素的总和为:“+sum+”,平均值为:“+avg”);
假设所有元素都是数字,否则需要进行类型检查以忽略NaN条目。
JavaScript循环
var i;
elmt=[]
elmt[0]=0;
elmt[1]=1;
elmt[2]=2;
elmt[3]=3;
elmt[4]=4;
elmt[5]=7;
elmt[6]=8;
elmt[7]=9;
elmt[8]=10;
elmt[9]=11;
var总和=0;
对于(elmt的x){
总和+=x;
}
var avg=总和/长度;
文件。写入(“所有元素的总和为:“+sum+”,平均值为:“+avg”);
假设所有元素都是数字,否则需要进行类型检查以忽略NaN条目。在计算总和时使用elmt[i]
。此外,您使用与total sum变量相同的名称sum
,并在中使用循环迭代器elmt[i]
是NaN
。为什么elmt
定义时没有var
(或者let
/const
)?这是一种将元素添加到elmt
->var-elmt=[0,1,2,3,4,7,8,9,10,11]的非常复杂的方法
也会这样做。@user3132457elmt[i]
不是NaN
,它是未定义的,因为i
未定义。只有parseInt(elmt[i],10)
将是NaN
@Andreas想知道我为什么被否决,我的问题很清楚,我展示了一些代码…不是我的DV,但我想这是关于循环如何工作的缺失研究,也许没有调试的提示(为什么i
或elmt[i]
未定义的?)。您在计算总和时使用的是elmt[i]
。此外,您使用与total sum变量相同的名称sum
,并在中使用循环迭代器elmt[i]
是NaN
。为什么elmt
定义时没有var
(或者let
/const
)?这是一种将元素添加到elmt
->var-elmt=[0,1,2,3,4,7,8,9,10,11]的非常复杂的方法
也会这样做。@user3132457elmt[i]
不是NaN
,它是未定义的,因为i
未定义。只有parseInt(elmt[i],10)
将是NaN
@Andreas想知道我为什么被否决,我的问题很清楚,我展示了一些代码…不是我的DV,但我想这是关于循环如何工作的缺失研究,也许没有调试的提示(为什么i
或elmt[i]
未定义的?).在第二个循环中,应为sum+=e
@wvteijlingen刚刚尝试了您编写的for…of循环示例,但没有成功。哎呀,复制和粘贴后,我把for…of
循环搞砸了。现在应该可以了。@wvteijlingen谢谢你的清晰回答,想知道我为什么被否决,我的问题很清楚,我展示了一些代码…在第二个循环中,应该是sum+=e
@wvteijlingen刚刚尝试了您编写的for…of循环示例,但没有成功。哎呀,复制和粘贴后,我把for…of
循环搞砸了。现在应该可以用了。@wvteijlingen谢谢你的明确回答,想知道为什么我被否决了,我的问题很清楚,我展示了一些代码。。。
// For loop
for (i = 0; i < elms.length; i++) {
sum += elmt[i];
}
// For...of loop
for (let e of elmt) {
sum += e;
}
var sum = elms.reduce((a, c) => a + c, 0);
var avg = sum / elms.length;
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Loops</h2>
<p id="demo"></p>
<script>
var i;
elmt=[]
elmt[0] = 0;
elmt[1] = 1;
elmt[2] = 2;
elmt[3] = 3;
elmt[4] = 4;
elmt[5] = 7;
elmt[6] = 8;
elmt[7] = 9;
elmt[8] = 10;
elmt[9] = 11;
var sum = 0;
for (let x of elmt) {
sum += x;
}
var avg = sum/elmt.length;
document.write( "The sum of all the elements is: " + sum + " The average is: " + avg );
</script>
</body>
</html>