AS3:从阵列中获取平均值

时间:2016-03-21 22:03:39

标签: arrays actionscript-3 flash multidimensional-array actionscript

我正在制作一个能够计算学生平均成绩的应用程序。 他们为每个科目输入了文本字段,可以插入成绩(从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 个答案:

答案 0 :(得分:0)

平均值只是所有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;
}