🐸

TypeScript 配列メソッド

に公開2

📝よく使いそうなやつメモ( ..)φ

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array

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]

おわりに

他にも reduceforEachincludes など便利な配列メソッドはたくさんあります!
もっと詳しく知りたい方は、ぜひ MDN の公式リファレンスもチェックしてみてください👇
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array

Discussion

junerjuner

連続して .map() するときとかは 一旦 .values() して iterator 経由して .map() などした上で最後に .toArray() すると余計な配列生成が抑えられるとかもありますね。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/values

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator/map

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator/toArray

ぷっけぷっけ

コメントありがとうございます!(..)_
勉強になります_(..)