課題【練習問題(変数/関数/処理の流れ)】ーNo.010

課題内容

  • <概要>
  •  配列を準備して、配列の「末尾」から、値を順番に消してみましょう。
  • 消した値はコンソールに表示して、別の配列に入れておきましょう。
  •  データがなくなったこともコンソールに表示してみましょう。
  •  最後に消したデータを入れた配列を使って、逆順を表示してみましょう。
  •   
  • <配列に準備する値>
  •  配列に準備する値としては、3つの文字列を入れましょう。
  •  1つ目の値として「りんご」、
  •   2つ目の値として「みかん」、
  •   3つ目の値として「メロン」、
  •   4つ目の値として「バナナ」、
  • を入れてみましょう。

出力結果

コンソールに表示したい結果

------------------------
最初に配列の値を表示します。
------------------------
りんご
みかん
メロン
バナナ
------------------------
配列の値を消します。
------------------------
バナナを消しました。
配列の残りの要素数は3です。
メロンを消しました。
配列の残りの要素数は2です。
みかんを消しました。
配列の残りの要素数は1です。
りんごを消しました。
配列の残りの要素数は0です。
------------------------
消した値を順番に表示します。
------------------------
バナナ
メロン
みかん
りんご

ポイント(配列の値の取得)

配列の基本として、

  • 配列は複数の値を入れることができるが、順番が大切。
  • 「インデックス」と呼ばれる0からの番号で取得できる

ということを意識しましょう。

また、

今回の問題のポイントは「オブジェクト」を使用すること。

この「オブジェクト」は

// オブジェクト「sampleValue」に「test」が「テストの値」というデータを代入。
let sampleValue = {test: 'テストの値'};

// オブジェクト「sampleValue」の「test」を取得
console.log(sampleValue.test);
console.log(sampleValue['test']);

このように使います。

この「オブジェクト」の基本に関しては、以下の記事の一部を参考にしてください。

ポイント(配列の末尾要素の削除)

配列の末尾要素の削除は、

「pop」

という標準関数を使ってみましょう。

let test = sampleList.pop();

このように使います。

この「shift」という標準関数の使い方に関しては、以下の記事の一部を参考にしてください。

答え

// 3つの文字列を配列に入れる
let sampleList = ['りんご','みかん','メロン','バナナ'];

// 削除した値を入れるための配列
let deleteList = [];

// コンソールに値を表示
console.log('------------------------');
console.log('最初に配列の値を表示します。');
console.log('------------------------');
for(let idx=0;idx<sampleList.length;idx++) {
  console.log(sampleList[idx]);
}

console.log('------------------------');
console.log('配列の値を消します。');
console.log('------------------------');
while(sampleList.length > 0) {
  // コンソールに表示
  console.log('配列の値を1つ消します。');

  // 配列の先頭を1つ削除して値を取得
  let deleteValue = sampleList.pop();
  
  // コンソールに表示
  console.log(deleteValue + 'を消しました。');

  // 削除した値を配列に追加
  deleteList.push(deleteValue);
  
  //
  console.log('配列の残りの要素数は' + sampleList.length + 'です。');
}

console.log('------------------------');
console.log('消した値を順番に表示します。');
console.log('------------------------');
for(let idx=0;idx<deleteList.length;idx++) {
  console.log(deleteList[idx]);
}