JavaScriptで覚えておくとよいデータ構造 - 配列・オブジェクト
JavaScriptで必要なデータ構造の覚書です。
目次
配列
配列は複数件のデータを扱うためのデータ構造です。
■配列を生成する。
配列の生成は以下のように行います。
var 配列の名前 = []; var 配列の名前 = [ データ, データ, … ];
配列の生成では、配列の名前を指定します。
もし、生成時にデータを格納する場合に、[]内にデータを指定します。
なお、JavaScriptでは配列の生成時にサイズを指定しません。
例えば、空の配列array1を生成するには、以下のように書きます。
var array1 = [];
例をもう一つ。データを3つ格納した配列array2を生成するには、以下のように書きます。
var array2 = [ "history", "japanese", "math" ];
■配列にデータを追加する。
配列へのデータの追加は以下のように行います。
配列の名前.push( データ );
データの追加では、配列の名前とデータを指定します。
追加するたびに、データは配列の末尾に追加され、配列のサイズが増えます。
例えば、配列array1にデータを追加するには、以下のように書きます。
array1.push( "give" ); array1.push( "gave" ); array1.push( "given" );
■配列にデータを格納する。
配列の特定の位置へのデータの格納は以下のように行います。
配列の名前[インデックス] = データ;
データの格納では、配列の名前とインデックスと格納するデータを指定します。
インデックスとは配列の位置を表す数字で、「0」以上で「配列のサイズ」より小さい値を指定する必要があります。
例えば、配列array2へデータを格納するには、以下のように書きます。
array2[3] = "english"; array2[4] = "science";
■配列からデータを取得する。
配列からのデータの取得は以下のように行います。
関数( 配列の名前[インデックス] ); 変数 = 配列の名前[インデックス]; return 配列の名前[インデックス];
データの取得では、配列の名前とインデックスを指定します。インデックスの考え方はデータの格納時と同様です。
配列から取得したデータは、関数の引数に渡したり、変数に代入したり、関数の戻り値として返したりできます。
例えば、配列array1のデータを取得してブラウザに表示するには、以下のように書きます。
document.write( array1[0] + "<br>" ); => give document.write( array1[1] + "<br>" ); => gave document.write( array1[2] + "<br>" ); => given
■配列中のすべてのデータに同じ処理をする。
配列中のすべてのデータに同じ処理をするためには、以下のようなfor文を使用します。
for ( var i = 0; i < 配列の名前.length; ++i ) { // 配列の名前[i]を使った処理 }
このfor文中の『配列の名前.length』は配列のサイズを表します。そのため、このfor文を使えば配列中のすべてのデータに同じ処理を行えます。
例えば、配列array2中のすべてのデータを表示するには、以下のように書きます。
for ( var i = 0; i < array2.length; ++i ) { document.write( array2[i] + "<br>" ); }
これは以下のように書いた場合と同じ結果になります。
document.write( array2[0] + "<br>" ); => history document.write( array2[1] + "<br>" ); => japanese document.write( array2[2] + "<br>" ); => math document.write( array2[3] + "<br>" ); => english document.write( array2[4] + "<br>" ); => science
オブジェクト
オブジェクトとは、キーに関連付けてデータを格納するデータ構造です。
■オブジェクトを生成する。
オブジェクトの生成は以下のように行います。
var オブジェクトの名前 = {}; var オブジェクトの名前 = { キー: データ, キー: データ, キー: データ, キー: データ };
オブジェクトの生成では、オブジェクトの名前を指定します。
もし、生成時にデータを格納する場合、{}内にキーとデータを指定します。データはキーに関連付けて格納されます。
例えば、空のオブジェクトobject1を生成するには、以下のように書きます。
var object1 = {};
例をもう一つ。データを4つ格納したオブジェクトobject2を生成するには、以下のように書きます。
var object2 = { "country": "日本", "language": "日本語", "capital": "東京", "currency": "円" };
■オブジェクトにデータを格納する。
オブジェクトへのデータの格納は以下のように行います。
オブジェクトの名前[キー] = データ;
データの格納では、オブジェクトの名前とキーと格納するデータを指定します。データはキーに関連付けて格納されます。
例えば、オブジェクトobject1にデータを格納するには、以下のように書きます。
object1["country"] = "フランス"; object1["language"] = "フランス語"; object1["capital"] = "パリ"; object1["currency"] = "ユーロ";
■オブジェクトからデータを取得する。
オブジェクトからのデータの取得は以下のように行います。
関数( オブジェクトの名前[キー] ); 変数 = オブジェクトの名前[キー]; return オブジェクトの名前[キー];
オブジェクトからのデータの取得では、オブジェクトの名前とキーを指定します。キーに関連付いたデータが取得されます。
オブジェクトから取得したデータは、関数の引数に渡したり、変数に代入したり、関数の戻り値として返したりできます。
例えば、オブジェクトobject1からデータを取得してブラウザに表示するには、以下のように書きます。
document.write( object1["country"] + "<br>" ); => フランス document.write( object1["language"] + "<br>" ); => フランス語 document.write( object1["capital"] + "<br>" ); => パリ document.write( object1["currency"] + "<br>" ); => ユーロ
■オブジェクト中のすべてのデータに同じ処理をする。
オブジェクト中のすべてのデータに同じ処理をするためには、以下のようなfor in文を使用します。
for ( var key in オブジェクトの名前 ) { var data = オブジェクトの名前[key]; // keyやdataを使った処理 }
このfor in文では、すべてのキーとデータについて処理を繰り返します。繰り返すたびに、変数keyにキーが、変数dataにデータに格納されます。
例えば、オブジェクトobject2中のすべてのキーとデータの関連付けをブラウザに表示するには、以下のように書きます。
for ( var key in object2 ) { var data = object2[key]; document.write( key + ": " + data + "<br>" ); }
これは、以下のように書いた場合と同じような結果になります。ただし、キーの順序は決まっていないので、表示順序は異なることがあります。
document.write( "country: " + object2["country"] + "<br>" ); => country: 日本 document.write( "language: " + object2["language"] + "<br>" ); => language: 日本語 document.write( "capital: " + object2["capital"] + "<br>" ); => capital: 東京 document.write( "currency: " + object2["currency"] + "<br>" ); => currency: 円
データ構造
アルゴリズム
- Javaを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 (リスト&マップ編)
- Javaを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 (リスト&ビーン編)
- PHPを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計
- VBAを使うなら理解しておきたいアルゴリズム - 抽出・結合・集計
- Javascriptを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計
- SQLを使うなら理解しておきたいアルゴリズム?(というか、select文の書き方) - where・order by・join・group by
- Bashを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計