计算数组中点的平均值-Javascript

Calculate the average of points in a array - Javascript

本文关键字:平均值 -Javascript 数组 计算      更新时间:2023-09-26

我有一个数组,里面有关于一组人的信息:姓名、当前状态、新点、上次事件点

示例:

var group = new Array();
group[0] = "John Doe,beginer,14,7";
group[1] = "Lois Lane,advanced,13,9";
group[2] = "Bruce Waine,advanced,17,10";

我需要一个函数来计算新点的平均值。

对于前面的示例,平均值为(14+13+17)/3=14.666666666666667

如果将数组中的数据从字符串转换为对象,会容易得多。这将在两个方面为您带来好处:1)代码将更可读、更易懂、更易于维护;2)您不必做一堆字符串体操来提取相关数据。

这样做:

var group = [
  { name: 'John Doe', status: 'beginner', newPoints: 14, eventPoints: 7 },
  { name: 'Lois Lane', status: 'advanced', newPoints: 13, eventPoints: 9 },
  { name: 'Bruce Waine', status: 'advanced', newPoints: 17, eventPoints: 10 }
];
function getAverageNewPoints(people) {
  var count = people.length || 0,
      average = 0;
  for (var i = 0; i < count; i++) {
    average += people[i].newPoints;
  }
  return average / count;
}
alert('The average of new points in the group is: ' + getAverageNewPoints(group));

尝试以下操作:

function groupAverage(group) {
    var sum = 0;
    var count = group.length;
    for (var i in group) {
        sum += parseInt(group[i].split(',')[2], 10);
    }
    return sum / count;
}

在处拆分字符串,获取值并将其转换为Number。

var group = new Array();
 group[0] = "John Doe,beginer,14,7";
 group[1] = "Lois Lane,advanced,13,9";
 group[2] = "Bruce Waine,advanced,17,10";
sum=0;
for(var i in group)
{
    sum=sum+Number(group[i].split(",")[2]);
}
console.log(sum/group.length);  

您的数据结构不正确。你不想使用字符串。您也不应该使用Array构造函数。开始:

var group = [
    {name: "John Doe",    rank: "beginner", points: 14, lastScore: 7},
    {name: "Lois Lane",   rank: "advanced", points: 13, lastScore: 9},
    {name: "Bruce Wayne", rank: "advanced", points: 17, lastScore: 10},
],
length = group.length,
sum = 0,
i;
for ( i = 0; i < length; ++i) {
    sum += group[i].points;
}
return sum / length; // Or do something else with the result.
                     // I did no error checking.

您可以使用对象构造函数来代替我使用的内联Object,但这并不是真正必要的。我只是好奇;你是默认使用字符串,还是在教科书作业中使用字符串接口?

哦,使用[]而不是new Array()的一个原因是,当您构造Array时,值总是真的,而[]是假的。

我确实主动更正了布鲁斯的姓氏。