javascriptの勉強をしています。

ある配列(ret)の平均値を調べたいのですが、特定(▲▲)の数字だけは平均値に足さないようにします。
以下のように書いたのですが、
「ret.length;」には要素数が残ったままなので、どうもうまくいきません。

var sum=0.0;
for(var i=0; i<ret.length; i++){
if(ret[i]!=▲▲)
sum+=ret[i];
var mean=sum/ret.length;
}

「ret.length」から特定(▲▲)の数字の数を引くにはどうすればいいでしょうか?よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2009/04/24 17:52:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント100pt

ループして全要素を見ているのですから、lengthを使わずに、別途カウントしてやればどうでしょう。ソースは下記の通り。

var sum = 0.0;
var cnt = 0;
for (var i=0; i<ret.length; i++) {
    if (ret[i] != ▲▲) {
        sum += ret[i];
        cnt++;
    }
}
var mean = sum/cnt;
id:tontonpokopoko

pahooさま、

いつもありがとうございます。

なるほど!

引くことばかりを考えずに、

新たに変数を作って足せば簡単だったのですね。

動作確認もばっちりです。

2009/04/24 17:51:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません