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

如何在javascript中实现带偏差的平均年龄?

如何在javascript中实现带偏差的平均年龄?,javascript,algorithm,average,Javascript,Algorithm,Average,如何在javascript中实现带偏差的平均年龄? 我需要制作一个Javascript算法: 要求提供10人的姓名和年龄 打印屏幕上的“平均年龄”的人 打印每个人的姓名和年龄与平均值的偏差 我试图一个接一个地编写每个提示,但不知道是否有办法缩短代码 var input = prompt('Enter your name'); var name1 = input; input = prompt('Enter your age:'); var age1 = parseInt (input);

如何在javascript中实现带偏差的平均年龄? 我需要制作一个Javascript算法:

  • 要求提供10人的姓名和年龄
  • 打印屏幕上的“平均年龄”的人
  • 打印每个人的姓名和年龄与平均值的偏差
我试图一个接一个地编写每个提示,但不知道是否有办法缩短代码

var input = prompt('Enter your name');
var name1 = input;
input = prompt('Enter your age:');
var age1 = parseInt (input);

var input = prompt('Enter your name');
var name2 = input;
input = prompt('Enter your age:');
var age2 = parseInt (input);

[...]

var input = prompt('Enter your name');
var name10 = input;
input = prompt('Enter your age:');
var age10 = parseInt (input);

var average = (age1+age2+age3+age4+age5+age6+age7+age8+age9+age10/10);

console.log(`Average age: ${average}`);
console.log(`Name: ${name1}, Age: ${age1}, Deviance: ${deviance1}`);
console.log(`Name: ${name2}, Age: ${age2}, Deviance: ${deviance2}`);
[...]
console.log(`Name: ${name10}, Age: ${age10}, Deviance: ${deviance10}`);
<>我不知道如何做偏差(从分析值到平均值的差异)

每个人(名字和年龄)是一个具有相关属性的奇异实体,所以考虑使用一个对象。由于您有许多不同的人,因此可以使用数组,然后通过使用
reduce
对其进行迭代来获得平均值,并通过使用
forEach
进行迭代来记录所有差异:

//此代码段仅使用3个人
const people=[];
for(设i=0;i<3;i++){
const name=prompt('Enter your name');
const age=Number(提示(“输入您的年龄”);
人。推送({姓名,年龄});
}
常数平均值=
//将数组中的所有年龄相加:
people.reduce((a,{age})=>a+age,0)
//除以人数:
/人的身高;
people.forEach({name,age})=>{
常数偏差=数学平均值(年龄-平均值);
log(`Name:${Name},Age:${Age},Deviance:${Deviance}`);

});下面是另一个解决方案。我在代码中添加了一些注释以提供帮助。 如果您有任何问题,请告诉我:)

const MAX_name=3;
//每个人都将存储在下面的这个数组中
让人们=[];
//将总组合年龄存储在totalAge变量中
让totalAge=0;
for(设i=0;i}
例如:“偏差1”是“年龄1”和“平均值”之间的差值,如果(年龄1>平均值),那么(年龄1-平均值=偏差),否则如果(年龄1<平均值),那么(年龄1+平均值=偏差),我刚刚删除了Math.round和Math.abs,以便在值sawesome中更准确。很乐意帮忙。如果您还有任何问题,请告诉我:)