JavaScript | 配列の要素を条件で調べる便利メソッドまとめ

JavaScript JavaScript
スポンサーリンク

では、JavaScript の
find() / findIndex() / some() / every()
の理解を深めるために、レベル別(初級・中級・上級)で問題+解答+解説を用意しました。

初心者でもステップアップしながら自然に覚えられる構成です。


初級編(基礎理解)

Q1. 次のコードの出力は?

const numbers = [5, 8, 12, 4];
const result = numbers.find(num => num > 10);
console.log(result);
JavaScript

答え: 12
解説:
find は条件を満たす 最初の要素の値 を返す。
10より大きい最初の数は 12 だから、結果は 12


Q2. findIndex() の結果は?

const numbers = [5, 8, 12, 4];
const index = numbers.findIndex(num => num > 10);
console.log(index);
JavaScript

答え: 2
解説:
12 は配列の3番目の要素。配列は 0 から数えるので、インデックスは 2
見つからなければ -1


Q3. some() の結果は?

const ages = [15, 17, 19];
console.log(ages.some(age => age >= 18));
JavaScript

答え: true
解説:
「18歳以上が1人でもいるか?」 → 19 がいるので true
some は 1 つでも条件に合えば true


Q4. every() の結果は?

const ages = [15, 17, 19];
console.log(ages.every(age => age >= 18));
JavaScript

答え: false
解説:
「全員が18歳以上か?」 → 1517 がいるため false
every は1人でも条件を満たさないと false


中級編(少し実践的)

Q5. 次のコードの出力は?

const items = ["apple", "banana", "melon"];
const found = items.find(fruit => fruit.includes("na"));
console.log(found);
JavaScript

答え: "banana"
解説:
"na" を含む最初の要素は "banana"
includes() を条件に組み合わせて使うのがポイント。


Q6. 条件に合う要素がない場合

const numbers = [1, 3, 5];
const result = numbers.find(num => num % 2 === 0);
console.log(result);
JavaScript

答え: undefined
解説:
偶数がないため、find は見つからず undefined を返す。
findIndex の場合は -1


Q7. some() と every() の違いを確認

const scores = [80, 90, 50];
console.log(scores.some(s => s >= 80));  // ?
console.log(scores.every(s => s >= 80)); // ?
JavaScript

答え:

  • some: true
  • every: false

解説:

  • some → 80以上が1人でもいる(2人いる)→ true
  • every → 全員80以上ではない(50がある)→ false

Q8. findIndex() の実用例

const users = [
  { id: 1, name: "Aki" },
  { id: 2, name: "Bota" },
  { id: 3, name: "Coco" }
];

const index = users.findIndex(u => u.id === 2);
console.log(index);
JavaScript

答え: 1
解説:
id2 のユーザーは2番目の要素 → インデックス 1


上級編(応用・発展)

Q9. find() と filter() の違いを確認!

const nums = [2, 4, 6, 8];
console.log(nums.find(n => n > 4));   // ?
console.log(nums.filter(n => n > 4)); // ?
JavaScript

答え:

  • find: 6
  • filter: [6, 8]

解説:

  • find → 最初の1つだけ
  • filter → 条件を満たすすべての要素を配列で返す

Q10. オブジェクト配列の中から「未完了のタスク」を探す

const tasks = [
  { id: 1, title: "買い物", done: true },
  { id: 2, title: "掃除", done: false },
  { id: 3, title: "勉強", done: false }
];

const firstIncomplete = tasks.find(task => !task.done);
console.log(firstIncomplete.title);
JavaScript

答え: "掃除"
解説:
done: false の最初の要素を探す。
「未完了(false)」を条件にするために !task.done を使っている。


Q11. 「全員合格しているか」を調べる

const students = [
  { name: "Ken", score: 75 },
  { name: "Aya", score: 60 },
  { name: "Leo", score: 48 }
];

const allPassed = students.every(s => s.score >= 50);
console.log(allPassed);
JavaScript

答え: false
解説:
Leo の点数が50未満なので全員合格ではない。
1人でも条件を満たさないと false


Q12. 「60点以上の人がいるか」を調べる

const students = [
  { name: "Ken", score: 75 },
  { name: "Aya", score: 60 },
  { name: "Leo", score: 48 }
];

const hasGoodScore = students.some(s => s.score >= 60);
console.log(hasGoodScore);
JavaScript

答え: true
解説:
KenAya が条件を満たす → some は1人でもOKなので true


Q13. 条件を満たす位置を取得し、要素を更新

let products = [
  { id: 1, name: "りんご", stock: 10 },
  { id: 2, name: "バナナ", stock: 0 },
  { id: 3, name: "みかん", stock: 5 }
];

const idx = products.findIndex(p => p.stock === 0);
if (idx !== -1) {
  products[idx].stock = 20;
}

console.log(products);
JavaScript

答え:

[
  { id: 1, name: "りんご", stock: 10 },
  { id: 2, name: "バナナ", stock: 20 },
  { id: 3, name: "みかん", stock: 5 }
]

解説:
在庫が 0 の商品(バナナ)を探して、findIndex で位置を取得。
見つかったら在庫数を 20 に更新。
findIndex は実務でこうした「更新・削除」に便利。


まとめ表(4つの違い)

メソッド返り値条件に合う個数見つからなければよく使う用途
find()要素の値最初の1つundefined1件だけ取得
findIndex()インデックス番号最初の1つ-1位置を特定
some()true / false1つでもあればOKfalse存在チェック
every()true / false全て一致でOKfalse全件チェック

タイトルとURLをコピーしました