TypeScript開発で頻繁に使う配列操作を型安全に行うユーティリティ関数をまとめた。
emptyArray: 指定サイズの空配列を生成
特定の長さの配列を作成し、初期生成やプレースホルダー、モックデータとして利用する。
function emptyArray(size: number): Array<undefined> { return Array(size).fill(undefined);}chunkArray: 配列を指定サイズで分割
配列を指定の長さで分割する。
function chunkArray<T>(array: T[], size: number): T[][] { if (size <= 0) return []; return Array.from({ length: Math.ceil(array.length / size) }, (_, i) => array.slice(i * size, (i + 1) * size), );}Array.from を活用して、必要なチャンク数分の配列を生成しつつ、元の配列を slice で切り出している。
使用例:
const numbers = [1, 2, 3, 4, 5, 6, 7];
const chunks = chunkArray(numbers, 3);
console.log(chunks);// 結果: [[1, 2, 3], [4, 5, 6], [7]]filterNonNull: NullとUndefinedを型安全に除去
APIレスポンスなどで混入する null や undefined を取り除き、TypeScriptの型定義上も T | null から T に絞り込む関数。
function filterNonNull<T>(array: Array<(T | null | undefined)>): Array<T> { return array.filter((v): v is T => v != null);}unsafeShuffle: 配列をランダムに並び替え
Fisher-Yatesアルゴリズムを用いて配列をシャッフルする。 引数として渡された配列自体を変更する破壊的変更なので注意が必要。
function unsafeShuffle<T>(array: T[]): T[] { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; }
return array;}
hsb.horse