javascript数组输入用户和平均值计算

标签 javascript arrays

我有这个问题需要解决。 这听起来可能很简单,但我完全是初学者。 这是到目前为止我的代码,但当我运行它时只出现一个窗口。 感谢您的建议和帮助

var years= prompt("Enter the number of years: "); // Number of years
var rainFall = new ArrayList();

while (years < 1) {

    alert("Invalid. Enter 1 or greater: ");
    years =prompt("Enter a year: ");
}

for (var y = 1; y <= years; y++) {

    for (var m = 1; m <= NUM_MONTHS; m++) {

        alert("Year " + y + " month " + m + ": ");
        monthRain = prompt("enter rainfall for a month ");
        rainfall.add(monthRain);
    }
}

 alert("\nNumber of months: " + (years * NUM_MONTHS) + "Total rainfall: " + calculateTotalRainFall(rainFall) + " inches" + "Average monthly rainfall: " + calculateAverageRainFall(rainFall) + " inches");

最佳答案

    Array.prototype.sum = function() {
      var total = 0;
      for(var i in this) {
        var i = parseFloat(this[i]);
        if(i>=0) {
          total += i;
        }
      }
      return total;
    };

    Array.prototype.avg = function() {
      var avg = (this.length>0)? parseFloat(this.sum()/this.length) : 0;
      avg = parseFloat(parseInt(avg*100)/100);
      return avg;
    };

    var years = parseInt(prompt("Enter the number of years: ")); // Number of years

    var rainFall = [];

    while (years < 1) {
      alert("Invalid. Enter 1 or greater: ");
      years = parseInt(prompt("Enter a year: "));
    }

    var NUM_MONTHS = 12;
    for (var y = 1; y <= years; y++) {
      for (var m = 1; m <= NUM_MONTHS; m++) {
        alert("Year " + y + " month " + m + ": ");

        var monthRain = parseFloat(prompt("enter rainfall for a month "));
        if(monthRain>=0) {
          rainFall.push(monthRain);
        }
      }
    }

 if(years<1) years = 0;
 alert("\nNumber of months: " + (years * NUM_MONTHS) + "   Total rainfall: " + rainFall.sum() + " inches" + "   Average monthly rainfall: " + rainFall.avg() + " inches");

或:

    function sumArray (items) {
      var total = 0;
      for(var i in items) {
        var i = parseFloat(items[i]);
        if(i>=0) {
          total += i;
        }
      }
      return total;
    };

    function avgArray(items) {
      var sum = sumArray(items);
      var avg = (items.length>0)? parseFloat(sum/items.length) : 0;
      avg = parseFloat(parseInt(avg*100)/100);
      return avg;
    };

    var years = parseInt(prompt("Enter the number of years: ")); // Number of years

    var rainFall = [];

    while (years < 1) {
      alert("Invalid. Enter 1 or greater: ");
      years = parseInt(prompt("Enter a year: "));
    }

    var NUM_MONTHS = 12;
    for (var y = 1; y <= years; y++) {
      for (var m = 1; m <= NUM_MONTHS; m++) {
        alert("Year " + y + " month " + m + ": ");

        var monthRain = parseFloat(prompt("enter rainfall for a month "));
        if(monthRain>=0) {
          rainFall.push(monthRain);
        }
      }
    }

 if(years<1) years = 0;
 alert("\nNumber of months: " + (years * NUM_MONTHS) + "   Total rainfall: " + sumArray(rainFall) + " inches" + "   Average monthly rainfall: " + avgArray(rainFall) + " inches");

关于javascript数组输入用户和平均值计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31516182/

相关文章:

javascript - 三张图片组合 jquery

javascript - 具有文本动画和自动播放功能的 Jquery Slider?

javascript - 将js库包含到pdf中

c# - 数组中的相等值

Java - 无法让它工作

Python:沿特定维度查找大于阈值的最大数组索引

JavaScript 谷歌电子表格 : set the value of cell based on a match

java - 循环内的ArrayList

java - 从另一个数组的每 5 个元素创建一个 2D 数组

javascript - 使用 jquery 表情符号插件时,componentDidMount 的行为与 useEffect 不同