JavaScript オブジェクト 配列 for in文 代入演算子について

まずは、JSコードについて
var tensuuObj = {
足立: 65
, 安藤: 78
, 内木: 87
};
var goukeiTen = 0;
var ninnzuu = 0;
for (var key in tensuuObj) {
  goukeiTen += tensuuObj[key];
  ninnzuu++;
}
var heikinTen = goukeiTen / ninnzuu;
alert(heikinTen);

上から順に
var tensuuObj = {
足立: 65
, 安藤: 78
, 内木: 87
};
はオブジェクトになっている。
オブジェクト… プロパティ(※)を複数集めたもの集合のことです。変数配列もオブジェクトの一種に当たります。データを管理するのに非常に重要なもの

プロパティ…あらかじめ設定しておいた特定の情報(値)に、名前(プロパティ名)をつけたもの
参考:https://techacademy.jp/magazine/5556

さらに…
オブジェクトの構造は簡単に言うと「プロパティ」と「メソッド」に分けられます。
プロパティはさまざまな情報を「キー」と「値」のペアで保持することが可能で、メソッドは関数に似ています。

キー…オブジェクトを作る際に指定した文字列の要素名のこと。名前 (あるいはキー)つまり、プロパティ名
参考: https://www.sejuku.net/blog/64361

オブジェクトはプロパティを持つ
これがすごくわかりやすかったので持ってきました。https://techacademy.jp/magazine/5556

次に for in 文
またまた、コードから
var tensuuObj = {
足立: 65
, 安藤: 78
, 内木: 87
};
var goukeiTen = 0;
var ninnzuu = 0;
for (var key in tensuuObj) {
  goukeiTen += tensuuObj[key];
  ninnzuu++;
}
for in 文では、少ない記述で効率よく「キー」や「値」を取得・設定することが可能です 。
この例では、for-in文のin演算子を使用してループ毎に連想配列から「キー」を取得しています。変数「key」には、ループ毎に「キー」が代入されるのでキーだけを取得することが可能なのです
つまり、この場合,変数keyに変数tensuuObjの要素名を取り出している。
もっとわかりやすく言うと、変数『key』に、オブジェクト『tensuuObj』の『キー』が、1つずつ入っていきます。そして、ループ処理内で『tensuuObj[key]』として、オブジェクトの要素の値を取得しています。

代入演算子
goukeiTen += tensuuObj[key];

goukeiTen = goukeiTen + tensuObj[key]とも表せる。
つまり
最初の足立を取り出すときは、
goukeiTen = 0 + tensuObj[足立] つまり goukeiTen = 0 + 65
(goukeiTen=0とプログラムの最初指定している)

次は安藤を取り出すとき
goukeiTen = 65 + tensuObj[安藤] つまり goukeiTen = 65 + 78となる。

こんな感じです。理解するまで時間がかかって、難しいなぁ。

もりけん塾 https://terracetech.jp/ourvalue/morikenjuku/
もりけん先生ブログ https://terracetech.jp/

コメント

タイトルとURLをコピーしました