javascript 連想配列から要素数を取り出す

連想配列から要素数を取り出し平均を求める

Progateでjavascript 道場コース 基礎編を進めているとはまったのでメモ。

var scores = {Taro: 72, Ken: 93, Tom: 85, John: 68};

このような連想配列から要素数を取り出して「平均点は〇〇です」とconsoleに表示する内容。

var sum = 0 ;
for (var key in scores) {
  sum += scores[key];
}
var avg = sum / scores.length;

これでavgを出力してみてもエラーとなってしばらくはまった。どうやら連想配列は配列と違い変数.lengthで要素数を取り出せないらしい。
なにやら連想配列の場合はobject.keys().lengthで要素数を取るといいらしい。ので

var sum = 0 ;
for (var key in scores) {
  sum += scores[key];
}

var length = Object.keys(scores).length;

var avg = sum / length;
console.log("平均点は" + avg + "点です");

これでなんとか「平均点は79.5点です」と出力されました・・・ やっと先へ進めます・・・・

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発