Javascript 使用for of循环的数组中所有元素的总和/平均值

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=

我已经阅读了关于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=总和/长度;
文件。写入(“所有元素的总和为:“+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]的非常复杂的方法
也会这样做。@user3132457
elmt[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]的非常复杂的方法
也会这样做。@user3132457
elmt[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>