--- robots: noindex, nofollow tags: 課題,配列 --- - [name=MatuuraNobuki][time=Wed, May 17] :::warning **[GASプログラミング](/@IT-sircle/SkZ56xGP5) > [課題](/@IT-sircle/BySX_oxPq) > 5/17 実習課題 配列** ::: # 5/17 実習課題 配列 **出題範囲:[6. 配列](https://a-nakamura1015.github.io/gas-education/javascript_bases/value/page_2_1_8/)** ## 問題 ### 演習1 - 関数`learnArray_01`を作成し、その中に以下の処理を記述していく。 ```javascript= function learnArray_01(){ } ``` 1. 配列`students`を作成し、文字列`'Tanaka'`,`'Yamada'`,`'Asai'`,`'Kinoshita'`をそれぞれ順に格納する。 ```javascript= var students = ['Tanaka' , 'Yamada' , 'Asai' , 'Kinoshita']; ``` 2. 配列内の3番目の要素をログ出力する。 ```javascript= console.log(students[2]); ``` 3. 配列内の文字列`'Asai'`を`'Fujimoto'`に変換、配列の7番目に`'Sakamoto'`を追加し、配列`students`をログ出力する。 ```javascript= students[2] = 'Fujimoto'; students[6] = 'Sakamoto'; console.log(students); ``` ### 演習2 - 関数`learnArray_02`を作成し、その中に以下の処理を記述していく。 ```javascript= function learnArray_02(){ } ``` 1. 二次元配列`members`を作成し、1番目の配列に `['Tanaka','Yamada']` 、2番目の配列に `['Asai','Kinoshita']` 、3番目の配列に `['Fujimoto','Sakamoto']` をそれぞれ順に格納する。 ```javascript= var members = [['Tanaka' , 'Yamada'] , ['Asai' , 'Kinoshita'] , [ 'Fujimoto' , 'Sakamoto' ]]; ``` 2. `member`内にある3番目の配列内の1番目の要素をログ出力する。 ```javascript console.log(members[2][0]); ``` 3. 配列内の文字列`'Kinoshita'`を`'Aizawa'`に変換、`'Sakamoto'`の後に`'Nishimura'`を追加、5番目の配列`['John','Mike']`を追加し、二次元配列`members`をログ出力する。 ```javascript= members[1][1] = 'Aizawa'; members[2][2] = 'Nishimura'; members[4] = [ 'John' , 'Mike']; console.log(members); ``` ### 演習3 - 関数`learnArray_01`の戻り値を`students`にする。 ```javascript= function learnArray_01(){ //中略 return students; } ``` - 関数`learnArray_03`を作成し、その中に以下の処理を記述していく。 ```javascript= function learnArray_03(){ //中略 return students; } ``` 1. 二次元配列`students`を作成し、`learnArray_01`の戻り値を代入する。 ```javascript= var students = learnArray_01(); ``` 2. `students`をログ出力し、`learnArray_01`で作成した配列と同じ値であることを確認する。 ```javascript= console.log(students); ``` :::info * 今回は、演習1で作成した`learnArray_01`関数内の配列`students`を、演習3で使う`learnArray_03`でも利用しようとしています。そのためにまず`learnArray_01`内に`students`を`return`する(戻り値として返す)処理を記述しました。 ```javascript= function learnArray_01(){ //中略 return students; } ``` * このような記述をすることで、変数に`learnArray_01()`という関数を代入すると、その戻り値(今回は`students`)が代入されるようになります。 ```javascript= var students = learnArray_01(); ``` * `learnArray_03`内で作成した配列`students`に`learnArray_01()`を代入することで、`learnArray_01`で作った`students`配列が`learnArray_03`でも使えるようになりました。 ```javascript= function learnArray_01(){ //中略 return students; } function learnArray_02(){ //中略 } function learnArray_03(){ var students = learnArray_01(); console.log(students); //[ 'Tanaka', 'Yamada', 'Fujimoto', 'Kinoshita', , , 'Sakamoto' ]になるはず } ``` ::: 3. shiftメソッドを用いて`students`の先頭の要素を削除する。 ```javascript= students.shift(); ``` 4. pushメソッドを用いて`students`の最後に`'Okamoto'`を追加する。 ```javascript= students.push('Okamoto'); ``` 5. concatメソッドを用いて`students`に`[ 'Minami' , 'Tokuyama' ]`を追加し、戻り値を`students`に再代入する。 ```javascript= students = students.concat([ 'Minami' , 'Tokuyama' ]); ``` 6. sliceメソッドを用いて`students`の2番目から8番目までの値を取り出し、戻り値を`students`に再代入する。 ```javascript= students = students.slice(1, 8); ``` 7. sortメソッドを用いて`students`をアルファベット順に並び替える。 ```javascript= students.sort(); ``` 8. spliceメソッドを用いて`students`の6番目から2つ分の要素を削除する。 ```javascript= students.splice(5, 2); ``` 9. indexOfメソッドとspliceメソッドを用いて要素`Minami`から`Okamoto`までの値を削除し、新たに`John`と`Mike`を追加する。。 ```javascript= students.splice(students.indexOf('Minami'),(students.indexOf('Okamoto') - students.indexOf('Minami')) + 1,'John','Mike'); ``` 10. `students`をログ出力する。 ```javascript= console.log(students); ``` ## 回答 ### 演習1 ```javascript= function learnArray_01(){ var students = ['Tanaka' , 'Yamada' , 'Asai' , 'Kinoshita']; console.log(students[2]); students[2] = 'Fujimoto'; students[6] = 'Sakamoto'; console.log(students); } ``` ### 演習2 ```javascript= function learnArray_02(){ var members = [['Tanaka' , 'Yamada'] , ['Asai' , 'Kinoshita'] , [ 'Fujimoto' , 'Sakamoto' ]]; console.log(members[2][0]); members[1][1] = 'Aizawa'; members[2][2] = 'Nishimura'; members[4] = [ 'John' , 'Mike']; console.log(members); } ``` ### 演習3 ```javascript= function learnArray_03(){ var students = learnArray_01(); students.shift(); students.push('Okamoto'); students = students.concat([ 'Minami' , 'Tokuyama' ]); students = students.slice(1, 8); students.sort(); students.splice(5, 2); students.splice(students.indexOf('Minami'),(students.indexOf('Okamoto') - students.indexOf('Minami')) + 1,'John','Mike'); console.log(students); } ``` ###### タグ: `課題` `配列`