メインコンテンツにスキップ
モジュール 6 · レッスン 3 / 4コース内の 23/32~10 min
モジュールのレッスン (3/4)

見つける、いくつか、すべて

手動でループを作成せずに配列内を検索するための 3 つのコンパクトなメソッド。

find: 最初に一致するもの

JS
const utenti = [
  { nome: 'Anna', eta: 30 },
  { nome: 'Luca', eta: 12 },
  { nome: 'Sara', eta: 18 },
];

utenti.find((u) => u.eta >= 18);
// { nome: 'Anna', eta: 30 }

utenti.find((u) => u.nome === 'Marco');
// undefined  ← if none matches

findIndex バリアント: インデックス (または -1) を返します。

some: 少なくとも 1 つ

JS
const nums = [1, 2, 3, 4, 5];

nums.some((n) => n > 4); // true
nums.some((n) => n > 100); // false

[].some(() => true); // false  ← on an empty array it is always false

every: すべて

JS
const nums = [1, 2, 3, 4, 5];

nums.every((n) => n > 0); // true
nums.every((n) => n > 2); // false

[].every(() => false); // true  ← on an empty array it is always true!

空の配列における some と every の非対称性は意図的であり、論理的に一貫性があります。 「exists」(∃) および「for all」(∀) 論理演算子。

試してみてください

運動#js.m6.l3.e1
試行回数: 0読み込み中…

`firstAdult(users)` を定義します。 { name, age } の配列を指定すると、年齢が 18 以上の最初の名前を返します。ない場合は null を返します。検索を使用します。

エディターを読み込み中…
ヒントを表示

users.find(...);見つかった場合は u.name を返し、それ以外の場合は null を返します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m6.l3.e2
試行回数: 0読み込み中…

`allPositive(nums)` を定義します。nums のすべての要素が 0 > 0 (かつ配列が空ではない) の場合は true を返し、それ以外の場合は false を返します。すべての + a 長さチェックを使用します。

エディターを読み込み中…
ヒントを表示

長さ > 0 && nums.every(n => n > 0)

3 回の試行後に解決策が利用可能になります