someとeveryメソッドの違い | 配列の探索と操作 | JavaScript 超完全入門 基本から発展までのすべて

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

someメソッドとは?

someメソッドは、配列の要素の中に、指定した条件を満たす要素が1つでもあればtrueを返すメソッドです。条件を満たす要素が1つもない場合はfalseを返します。

someメソッドの基本的な使い方

const numbers = [1, 2, 3, 4, 5];

// 1つでも偶数があればtrueを返す
const hasEven = numbers.some(function(num) {
    return num % 2 === 0;
});

console.log(hasEven);  // true

この例では、numbers配列に偶数が1つ以上含まれているため、trueが返されています。

everyメソッドとは?

everyメソッドは、配列のすべての要素が指定した条件を満たしている場合にtrueを返すメソッドです。1つでも条件を満たさない要素があればfalseを返します。

everyメソッドの基本的な使い方

const numbers = [2, 4, 6, 8];

// すべての要素が偶数であればtrueを返す
const allEven = numbers.every(function(num) {
    return num % 2 === 0;
});

console.log(allEven);  // true

この例では、配列numbersのすべての要素が偶数であるため、trueが返されています。

someメソッドとeveryメソッドの違い

someメソッドは、条件を満たす要素が1つでもあればeveryメソッドは、すべての要素が条件を満たしている場合にそれぞれtrueを返します。

メソッド 動作 返り値 条件を満たさない場合
some 1つでも条件を満たす要素があるか true(条件を満たす要素がある場合) false
every すべての要素が条件を満たすか true(すべての要素が条件を満たす場合) false

実用例

次に、オブジェクト配列を使ってsomeeveryメソッドを活用する例を紹介します。

年齢が18歳以上のユーザーを探す例(someメソッド)

const users = [
    { name: "John", age: 17 },
    { name: "Jane", age: 22 },
    { name: "Jack", age: 16 }
];

// 1人でも18歳以上のユーザーがいるか
const hasAdult = users.some(function(user) {
    return user.age >= 18;
});

console.log(hasAdult);  // true

この例では、users配列の中に18歳以上のユーザーが1人いるため、someメソッドはtrueを返します。

すべてのユーザーが18歳以上かどうかをチェックする例(everyメソッド)

const users = [
    { name: "John", age: 17 },
    { name: "Jane", age: 22 },
    { name: "Jack", age: 16 }
];

// すべてのユーザーが18歳以上かどうかをチェック
const allAdults = users.every(function(user) {
    return user.age >= 18;
});

console.log(allAdults);  // false

この例では、すべてのユーザーが18歳以上ではないため、everyメソッドはfalseを返します。

まとめ

someメソッドは、条件を満たす要素が1つでもあるかどうかをチェックし、everyメソッドは、すべての要素が条件を満たしているかを確認するメソッドです。これらを使うことで、配列内の条件チェックを効率的に行うことができます。必要に応じて使い分けることで、より柔軟な配列操作が可能です。