AS3:获取数组的平均值
AS3: Get the average out of an array
我正在制作一个应用程序来计算学生的平均成绩。
他们为他们修读的每个科目都有输入文本字段,他们可以在其中插入成绩(从 1 到 6,其中 6 是最好的成绩)。
一直试图从数组中获取平均分数,但我就是做不对。问题不是计算平均值,而是访问人们插入的数值。到目前为止,我不能 return 人们输入的任何数字。
代码如下:
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;
嗯,平均值就是所有 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;
}
我正在制作一个应用程序来计算学生的平均成绩。 他们为他们修读的每个科目都有输入文本字段,他们可以在其中插入成绩(从 1 到 6,其中 6 是最好的成绩)。 一直试图从数组中获取平均分数,但我就是做不对。问题不是计算平均值,而是访问人们插入的数值。到目前为止,我不能 return 人们输入的任何数字。
代码如下:
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;
嗯,平均值就是所有 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;
}