🐸
TypeScript 配列メソッド
📝よく使いそうなやつメモ( ..)φ
concat
2 つ以上の配列を結合するために使用します。
このメソッドは既存の配列を変更せず、新しい配列を返します。
const array1: number[] = [1, 2, 3, 4, 5];
const array2: number[] = [6, 7, 8, 9, 10];
const array3: number[] = array1.concat(array2);
console.log(array1); // Output: [1, 2, 3, 4, 5]
console.log(array2); // Output: [6, 7, 8, 9, 10]
console.log(array3); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
every
配列内のすべての要素が条件に合うかどうかをテストします。
これは論理値を返します。
const numbers1: number[] = [2, 4, 6, 8];
const allEven1 = numbers1.every(num => num % 2 === 0);
console.log(allEven1); // true(すべて偶数)
const numbers2: number[] = [2, 3, 6, 8];
const allEven2 = numbers2.every(num => num % 2 === 0);
console.log(allEven2); // false(3が偶数じゃない)
some
配列内の要素が1つでも条件に合うかどうかをテストします。
これは論理値を返します。
const numbers1: number[] = [1, 3, 5, 7];
// 1つでも偶数があるか?
const hasEven1 = numbers1.some((num) => num % 2 === 0);
console.log(hasEven1); // false(全部奇数)
const numbers2: number[] = [1, 2, 3, 5];
// 1つでも偶数があるか?
const hasEven2 = numbers2.some((num) => num % 2 === 0);
console.log(hasEven2); // true(2が偶数)
filter
配列内の条件に合った要素を新しい配列に格納します
const numbers: number[] = [1, 2, 3, 4, 5];
// 偶数だけ取得
const filterEven = numbers.filter((num) => num % 2 === 0);
console.log(filterEven); // [2, 4]
findIndex
配列の中から条件を満たす「最初の要素のインデックス(位置)」を返します。
条件に合う要素がなければ -1 を返します。
const numbers: number[] = [5, 12, 8, 130, 44];
const index = numbers.findIndex(num => num > 100);
console.log(index); // 3(130が最初に条件を満たした)
const index2 = numbers.findIndex(num => num > 200);
console.log(index2); // -1(該当なし)
slice
配列や文字列から一部を「切り出して」新しい配列や文字列を返すメソッドです。
元のデータは変更されません
const fruits: string[] = ["apple", "banana", "cherry", "date", "fig"];
const result = fruits.slice(1, 4);
console.log(result); // ['banana', 'cherry', 'date']
console.log(fruits); // 元の配列はそのまま
map
各要素に対してコールバック関数を適用し、その結果から新しい配列を作ります。
const numbers: number[] = [1, 2, 3, 4, 5];
const mapArray = numbers.map((num) => num * 2);
console.log(mapArray); // [2, 4, 6, 8, 10]
応用編
繋げて利用することもできます
const numbers: number[] = [1, 2, 3, 4, 5];
// mapで2倍した配列から3の倍数をフィルタリング
const newArray = numbers.map((num) => num * 2).filter((num) => num % 3 === 0);
console.log(newArray); // [6]
おわりに
他にも reduce
、forEach
、includes
など便利な配列メソッドはたくさんあります!
もっと詳しく知りたい方は、ぜひ MDN の公式リファレンスもチェックしてみてください👇
Discussion
連続して .map() するときとかは 一旦 .values() して iterator 経由して .map() などした上で最後に .toArray() すると余計な配列生成が抑えられるとかもありますね。
コメントありがとうございます!(..)_
勉強になります_(..)