Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
76 views
in Technique[技术] by (71.8m points)

javascript - How do I get the average of a number in an array

I'm so close!

I'd like to be able to console log the average length of all the rivers in an array. But when I console.log (avg) in within the function getAverageLength() I'm giving an undefined number. How would I go about getting the average?

function createRiver(name, continent, lengthInKilometers) {
  return {
    name: name,
    continent: continent,
    lengthInKilometers: lengthInKilometers,
    logRiver: function() {
      console.log(" The " + this.name + " river is " + this.lengthInKilometers + " kilometers long. ")

    },
    isLongerThan: function(name) {
      return this.lengthInKilometers < name.lengthInKilometers;
    }
  }
}

var rivers = [
  createRiver("Amazon", "South America", 6575),
  createRiver("Danube", "Europe", 2850),
  createRiver("Ganges", "Asia", 2704),
  createRiver("Mekong", "Asia", 4350),
  createRiver("Mississippi", "North America", 3730),
  createRiver("Nile", "Africa", 6650),
  createRiver("Volga", "Europe", 3530),
];

function getAverageLength() {
  var total = 0;
  for (var i in rivers) {
    total += rivers[i].lengthInKilometers;
  }
  var avg = total / rivers.lengthInKilometers;
  console.log(avg)
}

getAverageLength()
question from:https://stackoverflow.com/questions/65888568/how-do-i-get-the-average-of-a-number-in-an-array

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to divide by rivers.length:

function createRiver(name, continent, lengthInKilometers) {
  return {
    name: name,
    continent: continent,
    lengthInKilometers: lengthInKilometers,
    logRiver: function () {
      console.log(" The " + this.name + " river is " + this.lengthInKilometers + " kilometers long. ")
    },
    isLongerThan: function (name) {
      return this.lengthInKilometers < name.lengthInKilometers;
    }
  }  
}

var rivers = [
  createRiver("Amazon", "South America", 6575),
  createRiver("Danube", "Europe", 2850),
  createRiver("Ganges", "Asia", 2704),
  createRiver("Mekong", "Asia", 4350),
  createRiver("Mississippi", "North America", 3730),
  createRiver("Nile", "Africa", 6650),
  createRiver("Volga", "Europe", 3530),
];

function getAverageLength() {
  var total = 0;
  for (var i in rivers) {
    total += rivers[i].lengthInKilometers;
  }
  var avg = total / rivers.length; //fix this
  console.log(avg)
}

getAverageLength();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...