DRILL 03 / コレクション
配列と配列メソッド
型付き配列から条件に合う値を選び、新しい配列へ変換します。
COURSE ROUTETypeScript Foundation
0 / 8
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] filter は残す値を決める
コールバックが true を返した要素だけが次の配列に入ります。正の値を残す条件は value > 0 です。
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 後に解説が開きます
まずは自分の言葉で方針を説明し、コードに落としてみましょう。