---
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);
}
```
###### タグ: `課題` `配列`