🐕

JavaScript 少なくとも1つ条件に合うかどうかを判断する`some`

に公開

JavaScriptには、配列を操作する便利なメソッドがたくさんあります。
その中でも今回は、条件に合う要素が1つでもあるかどうかを調べるためのメソッド、someについて解説します。

someとは?

someは配列に対して使えるメソッドで、次のような動きをします。

配列の中に、少なくとも1つ条件に合う要素があれば true を返す。
条件に合う要素が1つもなければ false を返す。

基本構文

array.some(callback);

callback は各要素に対して実行される関数で、次のような書き方ができます:

array.some((value, index, array) => {
  // 条件を指定してtrue/falseを返す
});

通常は value(今の要素)だけで十分なことが多いです。

具体例①:文字列の検索

const fruits = ["apple", "banana", "cherry"];

const hasBanana = fruits.some(fruit => fruit === "banana");

console.log(hasBanana); // true

この例では、fruitsの中に"banana"があるのでtrueが返ります。

具体例②:数値のチェック

const numbers = [10, 20, 30, 40];

const hasLargeNumber = numbers.some(num => num > 25);

console.log(hasLargeNumber); // true

30や40があるので、条件(25より大きい)を満たす要素が存在して true になります。

具体例③:オブジェクトの配列に使う

const users = [
  { name: "Alice", isAdmin: false },
  { name: "Bob", isAdmin: false },
  { name: "Charlie", isAdmin: true }
];

const hasAdmin = users.some(user => user.isAdmin);

console.log(hasAdmin); // true

このように、配列の中のオブジェクトを見て条件をチェックする使い方も便利です。

everyとの違い

よく一緒に出てくるのが every。
違いは以下

メソッド 意味
some 1つでも条件を満たせば true
every 全てが条件を満たさないと false
const nums = [1, 2, 3];

nums.some(n => n > 2);  // true(3がある)
nums.every(n => n > 2); // false(1や2は条件を満たさない)

おわりに

someは「何か1つでも条件を満たす要素があるか?」をチェックするのにぴったりのメソッドです。

  • 書き方がシンプル
  • オブジェクトにも使いやすい
  • filterやfindと組み合わせるとさらに便利

配列処理をする場面でぜひ活用してみてください!

Discussion