Javascript 平均查找器始终打印“0”

Javascript 平均查找器始终打印“0”,javascript,arrays,Javascript,Arrays,我正在尝试创建一个程序,该程序可以查找某人输入的一组数据的平均值。我已尝试使用此代码: var data = []; var yesno = confirm("Would you like to add more data?"); while (yesno) { var newdata = prompt("Enter a piece of data (must be a number)"); data.push(newdata); var yesno = confirm("Would

我正在尝试创建一个程序,该程序可以查找某人输入的一组数据的平均值。我已尝试使用此代码:

var data = [];
var yesno = confirm("Would you like to add more data?");
while (yesno) {
  var newdata = prompt("Enter a piece of data (must be a number)");
  data.push(newdata);
  var yesno = confirm("Would you like to add more data?");
}
var total = 0;
var i = 0;
if (!yesno) {
  while (i < data.length) {
    total + data[i];
    i++;
  }
  var average = total / data.length;
  document.write(average);
}

然而,当我运行它时,无论我输入什么,它总是打印“0”。提前感谢您的帮助。

问题就在眼前

total + data[i];
此代码将在生成结果时执行。但是这个值没有发生任何变化。在javascript中,数字是基本类型。除对象外,所有数据类型都是对象。不能使用=将它们赋值来对其进行变异

您需要使用赋值表达式

total = total + data[i]; 
或者简称为

total += data[i]; 
另一个问题是,您没有将提示符的结果转换为数字。使用一元加号+将字符串转换为数字

下面是您的代码的更正版本

var数据=[]; var yesno=confirm是否要添加更多数据?; 而不是{ var newdata=+prompenter一段数据必须是一个数字; data.pushnewdata; var yesno=confirm是否要添加更多数据?; } var合计=0; var i=0; 如果是的{ 而i} 问题就在眼前

total + data[i];
此代码将在生成结果时执行。但是这个值没有发生任何变化。在javascript中,数字是基本类型。除对象外,所有数据类型都是对象。不能使用=将它们赋值来对其进行变异

您需要使用赋值表达式

total = total + data[i]; 
或者简称为

total += data[i]; 
另一个问题是,您没有将提示符的结果转换为数字。使用一元加号+将字符串转换为数字

下面是您的代码的更正版本

var数据=[]; var yesno=confirm是否要添加更多数据?; 而不是{ var newdata=+prompenter一段数据必须是一个数字; data.pushnewdata; var yesno=confirm是否要添加更多数据?; } var合计=0; var i=0; 如果是的{ 而i var数据=[]; var yesno=confirm是否要添加更多数据?; 而不是{ var newdata=+prompenter一段数据必须是一个数字; data.pushnewdata; var yesno=confirm是否要添加更多数据?; } var合计=0; var i=0; 如果是的{ 而i var数据=[]; var yesno=confirm是否要添加更多数据?; 而不是{ var newdata=+prompenter一段数据必须是一个数字; data.pushnewdata; var yesno=confirm是否要添加更多数据?; } var合计=0; var i=0; 如果是的{ 而i
var data = [];
var yesno = confirm("Would you like to add more data?");
while (yesno) {
    var newdata = prompt("Enter a piece of data (must be a 
    number)");
    data.push(newdata);
    var yesno = confirm("Would you like to add more 
    data?");
}
var total = 0;
var i = 0;
if (!yesno) {
    while (i < data.length) {
        total += data[i];
        i ++;
        var average = total / data.length;
document.write(average);
        } 
    }
试试这个:

var data = [];
var yesno = confirm("Would you like to add more data?");
while (yesno) {
    var newdata = prompt("Enter a piece of data (must be a 
    number)");
    data.push(newdata);
    var yesno = confirm("Would you like to add more 
    data?");
}
var total = 0;
var i = 0;
if (!yesno) {
    while (i < data.length) {
        total += data[i];
        i ++;
        var average = total / data.length;
document.write(average);
        } 
    }

总数+数据[i];是一个孤立的表达。您必须使用=运算符分配给要分配给Happen的变量我认为您需要添加平均变量和文档;是一个孤立的表达。您必须使用=运算符分配给要分配给Happen的变量。我认为您需要添加平均变量和文档