UNIT 2 講義ルート

DRILL 03 / コレクション

配列と配列メソッド

型付き配列から条件に合う値を選び、新しい配列へ変換します。

目安 10分 TypeScript array / filter
COURSE ROUTETypeScript Foundation
0 / 8
MISSION 03講義ルートを確認
  1. UNIT 1 · DRILL 01基本型OPEN
  2. UNIT 1 · DRILL 02関数OPEN
  3. UNIT 2 · DRILL 03配列ACTIVE
  4. UNIT 2 · DRILL 04オブジェクトOPEN
  5. UNIT 3 · DRILL 05ユニオン型OPEN
  6. UNIT 3 · DRILL 06タプルOPEN
  7. UNIT 4 · DRILL 07MapOPEN
  8. UNIT 4 · DRILL 08ジェネリクスOPEN

YOUR TASK

doublePositive() を完成させる

数値配列から正の値だけを選び、それぞれを2倍した新しい配列を返してください。入力配列は変更しません。

入力
values は整数を要素に持つ配列です。
出力
正の値を2倍し、元の順番を保った配列を返します。

BEFORE CODING

filter と map はどちらが先?

この課題では、正の値を残してから2倍します。入力が [-2, 3, 5] なら、filter の結果は [3, 5]、続く map の結果は [6, 10] です。処理する順番をそのままコードの順番にします。

[-2, 3, 5] → filter → [3, 5] → map → [6, 10]
01

filter は残す値を決める

コールバックが true を返した要素だけが次の配列に入ります。正の値を残す条件は value > 0 です。

02

map は値を作り直す

map は各要素から新しい値を作ります。filter と map はどちらも新しい配列を返すため、values 自体は変わりません。

SYNTAX RECALL

確認する構文

const values: number[] = [1, 2, 3];
const doubled = values.map((value) => value * 2);
const even = values.filter((value) => value % 2 === 0);
  • 配列の要素型を number[] で表す
  • filter で正の値だけを残す
  • map で各要素を2倍する

STEPWISE HINTS

ヒント

01最初の一手

正の値の条件は `value > 0` です。

02処理の組み立て

filter の結果へ続けて map を呼び出せます。

03コードの形

`values.filter(...).map(...)` の順で新しい配列を作ります。

AFTER ACCEPTED

解説

AC 後に解説が開きます

まずは自分の言葉で方針を説明し、コードに落としてみましょう。