メインコンテンツにスキップ
モジュール 6 · レッスン 1 / 4コース内の 21/32~10 min
モジュールのレッスン (1/4)

マップとフィルター

2 つの重要なメソッド: 元の配列を変更せずに、配列を 新しい 配列に変換します。

map: 各要素を変換します

関数を受け取り、それを各要素に適用して、同じ長さの配列を返します。 結果とともに。

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

オリジナルはそのまま残ります:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: サブセットを選択します

述語 (true/false を返す関数) を使用します。必要な要素のみを保持します。 述語は真です。

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

2 つを組み合わせる

古典的なパイプライン: フィルターしてから変換します。

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

試してみてください

運動#js.m6.l1.e1
試行回数: 0読み込み中…

`vat(prices, rate)` を定義します。数値の配列とレート (例: 0.22) を指定すると、VAT を加算した価格を含む配列を返します。地図を使用します。

エディターを読み込み中…
ヒントを表示

price.map((p) => p * (1 + レート))

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m6.l1.e2
試行回数: 0読み込み中…

` AdultNames(people) ` を定義します。オブジェクト { name, age } の配列を受け取り、年齢が 18 以上の人々の名前の配列を返します。フィルター + マップを使用します。

エディターを読み込み中…
ヒントを表示

チェーン: .filter(...).map((p) => p.name)

3 回の試行後に解決策が利用可能になります