跳转到主要内容
eLearner.app
模块 6 · 第 3 课(共 4)课程中的23/32~10 min
模块课程(3/4)

找到、一些、每一个

Three compact methods to search in an array without writing the loop by hand.

find: the first one that matches

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 variant: returns the index (or -1).

some: at least one

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: all of them

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!

The asymmetry of some and every on empty arrays is intentional and logically consistent with the "exists" (∃) and "for all" (∀) logical operators.

Try it

锻炼#js.m6.l3.e1
尝试:0加载中...

Define `firstAdult(users)`: given an array of { name, age }, return the name of the first one with age >= 18, or null if none. Use find.

正在加载编辑器...
显示提示

users.find(...); if found return u.name, otherwise null.

3 次尝试后可用的解决方案

Review exercise

锻炼#js.m6.l3.e2
尝试:0加载中...

Define `allPositive(nums)`: return true if all elements of nums are > 0 (and the array is NOT empty), otherwise false. Use every + a length check.

正在加载编辑器...
显示提示

length > 0 && nums.every(n => n > 0)

3 次尝试后可用的解决方案