AS3:从数组中获取平均值[重复]

Posted

技术标签:

【中文标题】AS3:从数组中获取平均值[重复]【英文标题】:AS3: Get the average out of an array [duplicate] 【发布时间】:2016-07-08 15:17:36 【问题描述】:

我正在制作一个计算学生平均成绩的应用程序。 他们为所学的每个科目都有输入文本字段,他们可以在其中插入成绩(从 1 到 6,其中 6 是最好的成绩)。 一直试图从数组中获得平均分数,但我就是做错了。问题不是计算平均值,而是访问人们插入的数值。到目前为止,我无法返回人们输入的任何数字。

代码如下:

import flash.events.MouseEvent;
import fl.controls.DataGrid; 
import fl.controls.dataGridClasses.DataGridColumn; 
import fl.events.DataGridEvent; 
import fl.data.DataProvider; 
import fl.controls.ScrollPolicy;

knapp.addEventListener(MouseEvent.CLICK, klikk);

function klikk (evt:MouseEvent) 
    //Array for å samle alle verdiene
    var karakterer = 0;
    var karakterOversikt:Array = new Array();

    karakterOversikt = [
        Fag: "Engelsk", "Karakter": uint(inputEng.text),
        Fag: "Geografi", "Karakter": uint(inputGeo.text),
        Fag: "Historie Vg3", "Karakter": uint(inputHist.text),
        Fag: "Kroppsøving Vg3", "Karakter": uint(inputGym.text),
        Fag: "Naturfag", "Karakter": uint(inputNat.text),
        Fag: "Matematikk Vg1", "Karakter": uint(inputMatVg1.text),
        Fag: "Matematik Vg2", "Karakter": uint(inputMatVg2.text),
        Fag: "Norsk Hovedmål, skriftlig", "Karakter": uint(inputNorH.text),
        Fag: "Norsk Sidemål, skriftlig", "Karakter": uint(inputNorS.text),
        Fag: "Norsk Muntlig", "Karakter": uint(inputNorM.text),
        Fag: "Religion og etikk", "Karakter": uint(inputRel.text),
        Fag: "Samfunnsfag", "Karakter": uint(inputSamf.text),
        Fag: "Programfag 1", "Karakter": uint(inputProg1.text),
        Fag: "Programfag 2", "Karakter": uint(inputProg2.text),
        Fag: "Programfag 3", "Karakter": uint(inputProg3.text),
        Fag: "Programfag 4", "Karakter": uint(inputProg4.text),
        Fag: "Programfag 5", "Karakter": uint(inputProg5.text),
        Fag: "Programfag 6", "Karakter": uint(inputProg6.text),
        Fag: "Eksamen 1", "Karakter": uint(inputEksamen1.text),
        Fag: "Eksamen 2", "Karakter": uint(inputEksamen2.text),
        Fag: "Eksamen 3", "Karakter": uint(inputEksamen3.text),
        Fag: "Eksamen 4", "Karakter": uint(inputEksamen4.text),
        Fag: "Eksamen 5", "Karakter": uint(inputEksamen5.text),
    ];

    //sorterer karakterene etter høyeste
    karakterOversikt.sortOn("Karakter", Array.DESCENDING | Array.NUMERIC); 

    //Lager datagrid med alle karakterene
    fagOversiktGrid.dataProvider = new DataProvider(karakterOversikt);
    fagOversiktGrid.columns = ["Fag", "Karakter"];
    fagOversiktGrid.columns[0].width = 190;
    fagOversiktGrid.columns[1].width = 70;

【问题讨论】:

【参考方案1】:

平均值只是所有Karakter 值的总和除以karakterOversikt.length

function averageScore(karakterOversikt:Array):Number 
    var sum:Number = 0;
    for each (var item:Object in karakterOversikt) 
        sum += item.Karakter;
    
    return sum / karakterOversikt.length;

【讨论】:

感谢您的回答。不幸的是,我没有从总和中得到任何价值。试图移动 var sum:Number = 0;在函数之外,以及将 sum / karakterOversikt.length 插入另一个 var,然后返回该 var。但是当我尝试在函数之外跟踪总和时,它给了我错误。有什么建议吗? 你可以在var average:Number = averageScore(karakterOversikt)这样的地方使用这个函数。它给你带来了什么错误? 我意识到我需要改变我的阵列。首先有一个包含所有信息的数组,然后创建一个循环,将所有信息插入一个新数组,该数组将成为数据网格的数据库。这给了我更大的灵活性,因为我现在有两个可用于不同内容的数组。当这样做时,我让你的函数与第一个数组一起工作。谢谢你的帮助! :)

以上是关于AS3:从数组中获取平均值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从大小为 10 的数组中生成 1000 个随机数并找到数字的平均值并将它们打印在屏幕上 [重复]

Java:如何从第二种方法获取变量以在第三种方法中工作?

在 Pandas 中获取每个分区的每列平均值 [重复]

C#获取一个数组中的最大值最小值平均值

计算所有排序数组组合的平均值

获取 Bigquery 数组中 3 个最大值的平均值