You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
5.9 KiB
122 lines
5.9 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "8abcada0534e0fb3a7556ea3c5a2a8a4",
|
|
"translation_date": "2025-10-24T14:47:06+00:00",
|
|
"source_file": "2-js-basics/4-arrays-loops/assignment.md",
|
|
"language_code": "ja"
|
|
}
|
|
-->
|
|
# 配列とループ課題
|
|
|
|
## 指示
|
|
|
|
以下の演習を完了して、配列とループの操作を練習してください。各演習はレッスンの概念を基にしており、さまざまなループタイプや配列メソッドを適用することを奨励しています。
|
|
|
|
### 演習 1: 数字パターンジェネレーター
|
|
1から20までの範囲で、3番目ごとの数字をリスト化し、コンソールに出力するプログラムを作成してください。
|
|
|
|
**要件:**
|
|
- カスタムインクリメントを使用した`for`ループを使用する
|
|
- ユーザーにとってわかりやすい形式で数字を表示する
|
|
- ロジックを説明する詳細なコメントを追加する
|
|
|
|
**期待される出力:**
|
|
```
|
|
3, 6, 9, 12, 15, 18
|
|
```
|
|
|
|
> **Tip:** `for`ループのイテレーション式を変更して数字をスキップする方法を試してください。
|
|
|
|
### 演習 2: 配列分析
|
|
少なくとも8つの異なる数字を含む配列を作成し、データを分析する関数を作成してください。
|
|
|
|
**要件:**
|
|
- 少なくとも8つの値を持つ`numbers`という配列を作成する
|
|
- 最も大きい数字を返す`findMaximum()`関数を作成する
|
|
- 最も小さい数字を返す`findMinimum()`関数を作成する
|
|
- 全ての数字の合計を返す`calculateSum()`関数を作成する
|
|
- 各関数をテストし、結果を表示する
|
|
|
|
**ボーナスチャレンジ:** 配列内の2番目に大きい数字を見つける関数を作成してください。
|
|
|
|
### 演習 3: 文字列配列処理
|
|
お気に入りの映画、本、または曲の配列を作成し、さまざまなループタイプを練習してください。
|
|
|
|
**要件:**
|
|
- 少なくとも5つの文字列値を持つ配列を作成する
|
|
- 伝統的な`for`ループを使用して、番号付きでアイテムを表示する (例: 1. アイテム名)
|
|
- `for...of`ループを使用してアイテムを大文字で表示する
|
|
- `forEach()`メソッドを使用して、合計文字数をカウントして表示する
|
|
|
|
**例の出力:**
|
|
```
|
|
Traditional for loop:
|
|
1. The Matrix
|
|
2. Inception
|
|
3. Interstellar
|
|
|
|
For...of loop (uppercase):
|
|
THE MATRIX
|
|
INCEPTION
|
|
INTERSTELLAR
|
|
|
|
Character count:
|
|
Total characters across all titles: 42
|
|
```
|
|
|
|
### 演習 4: データフィルタリング (上級)
|
|
学生を表すオブジェクトの配列を処理するプログラムを作成してください。
|
|
|
|
**要件:**
|
|
- `name`、`age`、`grade`というプロパティを持つ少なくとも5つの学生オブジェクトの配列を作成する
|
|
- 18歳以上の学生を見つけるためにループを使用する
|
|
- 全ての学生の平均成績を計算する
|
|
- 成績が85以上の学生のみを含む新しい配列を作成する
|
|
|
|
**例の構造:**
|
|
```javascript
|
|
const students = [
|
|
{ name: "Alice", age: 17, grade: 92 },
|
|
{ name: "Bob", age: 18, grade: 84 },
|
|
// Add more students...
|
|
];
|
|
```
|
|
|
|
## コードのテスト
|
|
|
|
プログラムをテストする方法:
|
|
1. 各演習をブラウザのコンソールで実行する
|
|
2. 出力が期待される結果と一致することを確認する
|
|
3. 異なるデータセットでテストする
|
|
4. コードがエッジケース (空の配列、単一要素など) を適切に処理することを確認する
|
|
|
|
## 提出ガイドライン
|
|
|
|
提出物には以下を含めてください:
|
|
- 各演習の詳細なコメント付きJavaScriptコード
|
|
- プログラムが実行されているスクリーンショットまたはテキスト出力
|
|
- 各タスクに選んだループタイプとその理由の簡単な説明
|
|
|
|
## 評価基準
|
|
|
|
| 基準 | 優秀 (3点) | 適切 (2点) | 改善が必要 (1点) |
|
|
| -------- | -------------------- | ------------------- | --------------------------- |
|
|
| **機能性** | 全ての演習が正しく完了し、ボーナスチャレンジも含む | 必須の演習が正しく動作する | 一部の演習が未完了またはエラーを含む |
|
|
| **コード品質** | クリーンで整理されたコード、説明的な変数名 | コードは動作するが、改善の余地あり | コードが乱雑または理解しにくい |
|
|
| **コメント** | ロジックと決定を説明する包括的なコメント | 基本的なコメントがある | コメントがほとんどない、またはない |
|
|
| **ループの使用** | 適切に異なるループタイプを使用して理解を示す | ループを正しく使用しているが、種類が限られている | 不適切または非効率的なループの使用 |
|
|
| **テスト** | 複数のシナリオで徹底的にテストした証拠 | 基本的なテストが示されている | テストの証拠がほとんどない |
|
|
|
|
## 振り返り質問
|
|
|
|
演習を完了した後、以下を考えてみてください:
|
|
1. どのタイプのループが最も自然に感じられたか、その理由は?
|
|
2. 配列を操作する際に直面した課題は何でしたか?
|
|
3. これらのスキルは実際のウェブ開発プロジェクトにどのように役立つでしょうか?
|
|
4. パフォーマンスを最適化するためにコードを再設計する必要がある場合、何を変更しますか?
|
|
|
|
---
|
|
|
|
**免責事項**:
|
|
この文書はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されています。正確性を追求していますが、自動翻訳には誤りや不正確さが含まれる可能性があります。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解について、当社は責任を負いません。 |