概要と目標複数のデータの管理出来る
配列と連想配列を理解しよう。
複数の関連するデータは、配列や連想配列で管理すると便利。
JavaScriptでは、連想配列をオブジェクトとも呼ぶ。
複数の関連するデータは、配列や連想配列で管理すると便利。
JavaScriptでは、連想配列をオブジェクトとも呼ぶ。
配列は、複数のデータを格納出来るデータ型。
配列には「通常の配列」と「連想配列」がある。
1つの変数には1つのデータ。
複数のデータには、複数の変数が必要。
1つの配列には、複数のデータを格納できる。
複数の共通するデータは配列が便利。
通常配列は、配列内の各値にインデックス番号という、番号が割り当てられる配列で、
配列の要素を利用したい時は、このインデックス番号を指定する必要がある。
var 配列名 = [値1, 値2, 値3];
(変数名) 0 1 2 ← インデックス番号(部屋番号)
配列名[インデックス番号]
添字
membersという配列を作成
// 配列の作成
var members = ['指原', '山本', '柏木', '横山'];
members配列のインデックス番号が「1」のデータを出力
// 配列の作成
var members = ['指原', '山本', '柏木', '横山'];
// 配列の値にアクセス
console.log(members[1]); // 山本
配列は反復を活用することで、全ての値を効率よく取り出せる。
for文を使って配列の全要素を出力
// 配列の作成
var members = ['指原', '山本', '柏木', '横山'];
// 配列の値にアクセス
console.log(members[1]); // 山本
// 反復を活用して全ての値を取り出す
for(var i = 0; i < 4; i++) {
document.write('<p>' + members[i] + '</p>');
}
配列の各要素は、変数の様に扱える。
また、インデックス番号を指定しない場合は、配列の末尾に値が追加される
配列名[インデックス番号] = 値;
// 配列の作成
var members = ['指原', '山本', '柏木', '横山'];
// 配列の値にアクセス
console.log(members[1]); // 山本
// 配列の値を変更
members[1] = 'まゆゆ'; // members の 1号室に値を代入
// 反復を活用して全ての値を取り出す
for (var i = 0; i < 4; i++) {
document.write('<p>' + members[i] + '</p>');
}
members.lengthに変更
length ・・・ 配列の要素数を返すプロパティ配列名.length
// 配列の作成
var members = ['指原', '山本', '柏木', '横山'];
// 配列の値にアクセス
console.log(members[1]); // 山本
// 配列の値を変更
members[1] = 'まゆゆ'; // members の 1号室に値を代入
// 反復を活用して全ての値を取り出す
for (var i = 0; i < members.length; i++) {
document.write('<p>' + members[i] + '</p>');
}
配列の添字は通常インデックス番号だが、任意の文字列を指定することもできる。
なお、JavaScriptではこの連想配列をオブジェクトとも呼ぶ。
var 配列名 = {
キー1: 値1,
キー2: 値2,
キー3: 値3
};
配列名[キー]
// または
配列名.キー
// オブジェクトの作成
var character = {
name: '山田',
age: 30,
job: 'ゆうしゃ'
};
// オブジェクトの作成
var character = {
name: '山田',
age: 30,
job: 'ゆうしゃ'
};
// オブジェクトの出力
document.write('<p>俺は' + character['job'] + 'の' + character['name'] + 'だ!</p>');
document.write('<p>年齢は' + character.age + '歳だ!</p>');
連想配列も配列と同様で、各要素の値を変更したり、追加することができる。
配列名[キー] = 値;
// オブジェクトの作成
var character = {
name: '山田',
age: 30,
job: 'ゆうしゃ'
};
// 値の変更
character['name'] = prompt('名前を設定して下さい。');
// オブジェクトの出力
document.write('<p>俺は' + character['job'] + 'の' + character['name'] + 'だ!</p>');
document.write('<p>年齢は' + character.age + '歳だ!</p>');
JavaScriptで現在の日時を取得するには、Date オブジェクトを使う。Date オブジェクトを使うには、newというキーワードを使って、
インスタンス化(実体化)する必要がある。
var 変数名 = new Date();
| メソッド | 説明 |
|---|---|
getFullYear() |
年 (4桁) を取得 |
getMonth() |
月 (0 - 11) を取得 |
getDate() |
日 (1 - 31) を取得 |
getDay() |
曜日 (0 - 6) を取得 |
getHours() |
時間 (0 - 23) を取得 |
getMinutes() |
分 (0 - 59) を取得 |
getSeconds() |
秒 (0 - 59) を取得 |
// 現在日時のオブジェクトをインスタンス化
var now = new Date();
console.log(now);
// 現在日時のオブジェクトをインスタンス化
var now = new Date();
console.log(now);
// Dateオブジェクトのメソッド
var year = now.getFullYear();
var month = now.getMonth() + 1;
var date = now.getDate();
var hour = now.getHours();
var minute = now.getMinutes();
var seconds = now.getSeconds();
document.write(year + '年' + month + '月' + date + '日 ' + hour + '時' + minute + '分' + seconds + '秒');
「chapter05」 › 「training」フォルダ内の「index.html」を開き、
下記の問題を解いて下さい。
| 時間 | メッセージ |
|---|---|
| 0時 | 0時です。日付が変わりましたね。 |
| 1時 | 1時ですがまだ寝ないんですか? |
| 2時 | もう2時ですよ。まだ寝ないんですか? |
| 3時 | 3時です。寝れないんですか? |
| 4時 | 4時です。どうやら寝れないみたいですね。 |
| 5時 | 5時ですが、もう起きるんですか? |
| 6時 | 6時です。早起きですね。 |
| 7時 | 7時です。おはようございます。 |
| 8時 | 8時です。朝ご飯食べましたか? |
| 9時 | 9時です。今日は何しますか? |
| 10時 | 10時です。そろそろお出かけですか? |
| 11時 | 11時です。お腹空いてきましたね。 |
| 12時 | 12時です。お昼ごはんですね |
| 13時 | 13時です。お昼から何しますか? |
| 14時 | 14時です。眠たい時間ですね。 |
| 15時 | 15時です。おやつの時間ですね |
| 16時 | 16時です。夕方ですね。 |
| 17時 | 17時です。夕日はきれいですか? |
| 18時 | 18時です。暗くなってきましたね。 |
| 19時 | 19時です。そろそろお腹も空いてきましたね。 |
| 20時 | 20時です。晩御飯は食べましたか? |
| 21時 | 21時です。お風呂は入りましたか? |
| 22時 | 22時です。眠たくたってきましたか? |
| 23時 | 23時なので、そろそろ寝ますか? |
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>練習問題5</title>
</head>
<body>
<script src="app.js"></script>
</body>
</html>
// 配列の作成
var message = [
'0時です。日付が変わりましたね。',
'1時ですがまだ寝ないんですか?',
'もう2時ですよ。まだ寝ないんですか?',
'3時です。寝れないんですか?',
'4時です。どうやら寝れないみたいですね。',
'5時ですが、もう起きるんですか?',
'6時です。早起きですね。',
'7時です。おはようございます',
'8時です。朝ご飯食べましたか?',
'9時です。今日は何しますか?',
'10時です。そろそろお出かけですか?',
'11時です。お腹空いてきましたね。',
'12時です。お昼ごはんですね。',
'13時です。お昼から何しますか?',
'14時です。眠たい時間ですね。',
'15時です。おやつの時間ですね。',
'16時です。夕方ですね。',
'17時です。夕日はきれいですか?',
'18時です。暗くなってきましたね。',
'19時です。そろそろお腹も空いてきましたね。',
'20時です。晩御飯は食べましたか?',
'21時です。お風呂は入りましたか?',
'22時です。眠たくたってきましたか?',
'23時なので、そろそろ寝ますか?'
];
// 日時の取得
var now = new Date();
var hour = now.getHours();
// 画面にメッセージを出力
document.write('<p>' + message[hour] + '</p>');
解答例は全問題のチェックボックスが on になるとご覧いただけます。
配列や連想配列を使えば、複数のデータの管理が行いやすいです。