1

私は人々のグループに関する情報を含む配列を持っています:名前、現在のステータス、新しいポイント、最後のイベントポイント

例:

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.66666666666667 になります。

4

4 に答える 4

1

次のことを試してください。

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;
}
于 2013-08-28T22:49:37.167 に答える
1

文字列を で分割し、値を取得して数値に変換します。

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);  
于 2013-08-28T22:52:22.717 に答える
0

これには不適切なデータ構造があります。文字列を使用したくない場合。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が、それは実際には必要ありません。ちょっと興味があります。文字列をデフォルトとして使用しましたか、それとも教科書の課題の一部として文字列インターフェイスを使用していましたか?

[]代わりにを使用する理由の 1 つnew Array()は、 を構築するときArray、値は常に真ですが、[]は偽であるということです。

私はブルースの姓を自由に修正しました。

于 2013-08-28T22:57:43.213 に答える