alienHRNの訓練日記

IT業界初心者で勉強中。

20200720 授業内容のメモ 配列・オブジェクト

※lengthとは
部屋数を調べる際に使用する値。

訳:console.log:コンソールに表示せよ


var fruits = ;
↑配列を作成する際に使用する値


console.log('1回目の出力');
console.log(fruits);
console.log(fruits.length);

---ここは番地に入れる値の設定---
fruits[0] = 'いちご';←0番地には’いちご’が入るということ
fruits[1] = 'みかん';1番地には〃
fruits[2] = 'りんご';2番地には〃
※1番からではなく0番地からはじまることに注意。

---ここから表示される---
console.log('2回目の出力');
console.log(fruits);フルーツを表示せよ
console.log(fruits.length);フルーツ部屋の数を表示せよ
---表示するように指示を出す---
console.log(fruits[0]);フルーツの0番地は?
console.log(fruits[1]);フルーツの1番地は?
console.log(fruits[2]);フルーツの21番地は?


練習
console.log('練習3-2');
var movie = [
'はりぽた',←設定においてはカンマで区切る形にしてもおk
'はりぽた2',
'はりぽた3',
];

console.log(movie);←指示出し
console.log(movie.length);


console.log(movie[2]);←表示箇所の指示出し。はりぽた3を表示させるには[2]を指示するのに注意
console.log(movie[movie.length - 1]);
↑movie.length - 1で最後の部屋番号を指定することができる。



よくあるミス
<p>var fruits;
↑配列リテラルが代入されていない。
変数に空の配列を代入しておく。</p>
<p>正しい値:var fruits=;</p>

fruits[0] = 'いちご';
fruits[1] = 'みかん';
fruits[2] = 'りんご';

console.log('1回目の出力');
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0]);
console.log(fruits[1]);
console.log(fruits[2]);


ステップアップ

HTMLファイル
<body>
  <h1>配列:ステップアップ</h1>
  <div class="box">
    <input type="text" id="message1">
    <input type="button" value="メッセージ表示" onclick="displayMessage();">
  </div>
  <div class="box">
    <p id="display1">表示箇所</p>
  </div>
  <script src="array2.js"></script>
</body>






JSファイル
var message1 = document.getElementById('message1').value;
//変数message1に
//HTML要素ID名message1入力値を代入。

console.log(message1);
document.getElementById('display1').innerHTML = kuji[message1];

//HTML要素ID名display1の文字列を代入によって変更。

kuji[message1]


◆ブラウザ内の表示を変更させる
document.getElementById('ID名を指定').
ID名を使ってHTML要素を特定
対象要素.value
↑1行入力パーツの入力値を使いたい場合


対象要素.innnerHTML
↑対象要素内の文字列を変更したい場合

<ul>

  言葉
  <li>ホイスティング・・一通り読み込む
    変数は上に巻き上げられているイメージ</li>
</ul>



<h1>多次元配列とは</h1>
配列部屋の中にさらに配列を入れて管理する手法。

ex)

var score = [

↓二次元目のscoreの1番地
[60, 90], //0番地:1人目の試験結果
↑二次元目のscoreの0番地

[20, 50, 95], //1番地:2人目の試験結果
[100], //2番地:3人目の試験結果
];

/* var score = [
'値1',
'値2',
'値3',
];
*/
console.log('1次元の出力');
console.log(score);
console.log(score.length);→3部屋あることを表示

console.log('1人目の試験結果');
console.log(score[0]);
console.log(score[0].length);
console.log(score[0][0]);
console.log(score[0][1]);

// 1人目2回目の試験結果を90点から80点に修正
score[0][1] = 80;

console.log('1人目の試験結果を修正');
console.log(score[0]);
console.log(score[0].length);
console.log(score[0][0]);
console.log(score[0][1]);


一次元目・・・人数
二次元目・・・試験結果
※実務では多くても三次元目まで扱う


length - 1→最後を示す。




<!----ここからおさらい問題------>



/**
* 問題
ミスドのレジ情報を管理することにしました
*/


/**
* 問1
* 適切な変数を宣言して購入情報を多次元配列で管理すること
*
* ■一人目が買ったもの
* コーヒー、 チョコファッション
* ■二人目が買ったもの
* ■三人目が買ったもの
* コーラ、 オールドファッション、 ポンデリング
* ■四人目が買ったもの
* オレンジジュース、 ハニーチュロ
*/

☆変数宣言
var foods = [
['コーヒー', 'チョコファッション'],
['コーラ', 'オールドファッション', 'ポンデリング'],
['オレンジジュース', 'ハニチュロ'],

];


/**
* 問2
* 一人目が最初に買ったものをブラウザに表示すること
* ヒント: document.getElementById('answer2').innerHTML
*/


document.getElementById('answer2').innerHTML = foods[0];


/**
* 問3
* 二人目と三人目が買ったものをすべてコンソールに表示すること
*/
console.log(foods[1][0]);
→コンソールにすべて表示させる場合、宣言した変数をすべて記述しないと反映されない。
[0]~[2]まですべて。
console.log(foods[2][0]);
console.log(foods[2][1]);
console.log(foods[2][2]);


/**
* 問4
* 三人目が買った商品の個数をブラウザに出力させなさい。
*/
document.getElementById('answer4').innerHTML = foods[2].length;




/**
* 問5
* 四人目が二番目に買った商品をブラウザに出力させなさい。
*/

document.getElementById('answer5').innerHTML = foods[3][1];



/**
* 問6
ミスドで買い物をした人数をブラウザに出力させなさい。
*/

document.getElementById('answer6').innerHTML = foods.length;