条件に一致する要素だけを含む新しい配列を返す
const nums = [1, 2, 3, 4, 5];
const evens = nums.filter(n => n % 2 === 0);
// [2, 4]
// TypeScript: 型ガードで返り値の型を絞り込む
const values: (string | null)[] = ['a', null, 'b'];
const strs = values.filter((v): v is string => v !== null);
// string[]filter()は条件に一致する要素だけを抽出した新しい配列を返します。TypeScriptの型ガード((v): v is Type)と組み合わせると返り値の型を絞り込めます。map()と組み合わせてデータのフィルタリング→変換というパターンが頻出です。
array.filter(callbackFn(element, index?, array?) => boolean)
callbackFnFunctiontrueを返した要素が新しい配列に含まれるコールバックがtrueを返した要素のみを含む新しい配列。マッチしない場合は空配列。
TypeScriptでは型ガード関数を渡すと返り値の型が絞り込まれる。