---
# System prepended metadata

title: 5/17 実習課題 配列
tags: [配列, 課題]

---

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