everyメソッド
everyメソッドの概要
everyメソッドは、配列内のすべての要素が特定の条件を満たすかどうかを判定するための高階関数です。すべての要素が条件を満たせばtrue
を返し、1つでも満たさない要素があればfalse
を返します。
たとえば以下の場合、配列numbers
の要素はすべて正の値なので、everyメソッドの結果はtrue
を返します。
function myFunction() {
const numbers = [1, 2, 3, 4, 5];
const allPositive = numbers.every(number => number > 0);
console.log(allPositive); // true
}
また、以下の場合は、配列numbers
の要素には負の値が含まれているので、everyメソッドの結果はfalse
を返します。
function myFunction() {
const numbers = [1, 2, -3, 4, 5];
const allPositive = numbers.every(number => number > 0);
console.log(allPositive); // false
}
everyメソッドの使用例
たとえば以下のように、オブジェクトの配列students
に対してeveryメソッドを使って、生徒全員が合格点に達しているかどうかを判定するような使い方が考えられます。
function myFunction() {
const PASSING_SCORE = 60; // 合格点
const students = [
{ name: '佐藤', score: 70 },
{ name: '鈴木', score: 80 },
{ name: '高橋', score: 90 },
];
const allPassed = students.every(student => student.score >= PASSING_SCORE);
if (allPassed) {
console.log('全員合格です!');
} else {
console.log('不合格者がいます泣');
}
}
someメソッド
someメソッドの概要
someメソッドは、配列内の少なくとも1つの要素が特定の条件を満たすかどうかを判定します。1つでも条件を満たせばtrue
を返し、すべての要素が条件を満たさなければfalse
を返します。
たとえば以下の場合、配列numbers
の要素には負の値が含まれているので、someメソッドの結果はtrue
を返します。
function myFunction() {
const numbers = [1, 2, -3, 4, 5];
const hasNegative = numbers.some(number => number < 0);
console.log(hasNegative); // true
}
また、以下の場合は、配列numbers
の要素はすべて正の値なので、someメソッドの結果はfalse
を返します。
function myFunction() {
const numbers = [1, 2, 3, 4, 5];
const hasNegative = numbers.some(number => number < 0);
console.log(hasNegative); // false
}
someメソッドの使用例
たとえば以下のように、オブジェクトの配列students
に対してsomeメソッドを使って、誰か1人でも合格点に達しているかどうかを確認するような使い方が考えられます。
function myFunction() {
const PASSING_SCORE = 60; // 合格点
const students = [
{ name: '佐藤', score: 30 },
{ name: '鈴木', score: 40 },
{ name: '高橋', score: 60 },
];
const someonePassed = students.some(student => student.score >= PASSING_SCORE);
if (someonePassed) {
console.log('合格者がいます!');
} else {
console.log('全員不合格です泣');
}
}
まとめ
以上、everyメソッドおよびsomeメソッドについて解説しました。
everyとsomeは対の概念で、その違いはつまり、AND条件とOR条件の違いということですね。
- everyは「全員合格しているか?」 のようなチェックに使う
- someは 「誰か1人でも合格しているか?」 のようなチェックに使う
ということです。この考え方を意識しながら、every と some を直感的に使い分けていきましょう。
連載目次: 高階関数シリーズ
- 【高階関数】forEachメソッドについて解説 (GAS/JavaScript)
- 【高階関数】mapメソッドについて解説 (GAS/JavaScript)
- 【高階関数】filterメソッドについて解説 (GAS/JavaScript)
- 【高階関数】sortメソッドについて解説 (GAS/JavaScript)
- 【高階関数】reduceメソッドについて解説 (GAS/JavaScript)
- 【高階関数】findとfindIndexについて解説 (GAS/JavaScript)
- 【高階関数】everyとsomeについて解説 (GAS/JavaScript)
- 関数宣言・関数式・アロー関数 (GAS/JavaScript)
コメント