オブジェクトの代入

今までに登場している物で言えば、連想配列や JSON 形式のデータがオブジェクトと呼ばれる。 データのひとかたまりをそう呼ぶんだなーと思ってもらえると良いかもしれない。

ちなみに細かいことを言うと、配列もオブジェクトの一種なんだって。

基本的な考え方

「キー」と「バリュー」の関係を抑えておこう。

「キー」は表札、「バリュー」は中身。プログラムの例でも keyvalue で表現されていることも多かったりする。

オブジェクトを作る

オブジェクトの代入の基本は {} を利用する方法。

const example = {
    "key": "value"
};

これで、example の key という名の下に value という文字列が入る。 キーについてはクォートを省略できるので、

const example = {
    key: "value"
};

でも同じ事。

複数を入れていきたい場合には、

const example = {
    key1: "value1",
    key2: "value2"
};

というような感じになる。

ちなみにキーに使えるのは変数と同じ条件の文字列。気をつけてね。

オブジェクトを参照する

オブジェクトの中身を扱うときには二つの記法がある。

ドット記法

const example = {
    key1: "value1",
    key2: "value2"
};

console.log( example.key2 );
// 出力内容: value2

ブラケット記法

const example = {
    key1: "value1",
    key2: "value2"
};

console.log( example["key2"] );
// 出力内容: value2

変数を使ってみるとどうなるか

一つ例を見て考えてみよう。

const name = "お名前";

const example = {
    name: name
};

console.log( example.name );
// 出力内容は...?

整理するとこんな処理になる。

  1. name に「お名前が入る」

  2. オブジェクトを example に代入する

  3. オブジェクトの中身は name: name

  4. キーは文字列表現として扱われるので name のまま

  5. バリューはクォートされていないため変数扱い。つまりは「お名前」

という事で、 example.name を出力すると お名前 が出てくる事になるわけ。

今度は、インデックスに変数を使いたい場合。今回の例ではメリットを感じないかも知れないけど、時によって使える。

const index = "key3";

const example = {
    key1: "value1",
    key2: "value2",
    key3: "value3"
};

// どうしたらindexを利用してexampleから値を取り出せるだろうか?

答えは至って簡単。ブラケット記法を利用しよう。

console.log(example[index]);
// 出力内容: value3

変数の中身を添字に利用したいというシーンはよくあるけど、このやり方なら扱えそうだね。

複雑なオブジェクト

オブジェクトの中身は階層にすることができる。 今更だけど配列も二次元・三次元と組んでいくことができる。

const staff = {
    yamada: {
        name: "山田さん",
        gender: "male",
        age: 28
    },
    suzuki: {
        name: "鈴木さん",
        gender: "female",
        age: 26
    }
};

console.log( staff.yamada.name );
// 出力内容: 山田さん

配列の例だと

const example = [
    [ 1, 0 ],
    [ 2, 4 ],
    [ 5, 9 ]
];

console.log( example[2][1] );
// 出力内容: 9

こんな感じ。自分で書くことはあまりないと思うけど、受け取るデータがこうなってることはよくあるので憶えておこう。

Last updated