find() у масиві
Метод find() - один із найчастіше використовуваних у JavaScript для пошуку конкретного елемента в масиві за умовою.
Він не фільтрує і не перебирає весь масив заради нового - він знаходить перший відповідний елемент і зупиняється.
Синтаксис
const result = array.find((element, index, array) => {
return умова;
});Параметри колбеку:
| Аргумент | Опис |
|---|---|
element | Поточний елемент масиву |
index | Індекс поточного елемента |
array | Сам вихідний масив |
Приклад 1. Пошук числа в масиві
const numbers = [1, 5, 10, 15, 20];
const found = numbers.find(num => num > 10);
console.log(found); // 15
find()повернув перше значення, що задовольняє умову (> 10), і зупинив пошук. Якщо нічого не знайдено - повертаєundefined.
Приклад 2. Пошук об'єкта за властивістю
const users = [
{ id: 1, name: 'Tim', age: 25 },
{ id: 2, name: 'Alex', age: 17 },
{ id: 3, name: 'John', age: 30 }
];
const user = users.find(u => u.id === 3);
console.log(user);
// { id: 3, name: 'John', age: 30 }Дуже частий випадок - пошук елемента в масиві об'єктів (наприклад, за
id).
Приклад 3. Якщо елемент не знайдено
const arr = [10, 20, 30];
const res = arr.find(num => num > 50);
console.log(res); // undefinedЯкщо не знайдено жодного відповідного елемента - повертається
undefined, а не помилка.
Часті помилки
- Очікування масиву замість одного елемента:
const result = arr.find(num => num > 5);
console.log(result.length); // Помилка - find повертає елемент, не масивЯкщо потрібні всі елементи, а не один - використовуй filter().
- Забутий
returnу фігурних дужках:
arr.find(num => { num > 5 }); // завжди undefinedПравильно:
arr.find(num => num > 5);
// або
arr.find(num => { return num > 5 });Коли використовувати find()
| Мета | Чи підходить find() |
|---|---|
| Знайти перший елемент, що задовольняє умову | Так |
| Знайти всі відповідні елементи | Ні - використовуй filter() |
| Перевірити, чи є хоча б один елемент | Ні - використовуй some() |
| Перетворити дані | Ні - використовуй map() |
Коротко:
find()повертає перший елемент, який задовольняє умову, абоundefined, якщо такого немає.
Формула для запам'ятовування:
arr.find(умова) -> один_елемент_або_undefined
Порівняння зі схожими методами
| Метод | Що повертає | Коли зупиняється | Приклад |
|---|---|---|---|
| find() | Перший відповідний елемент | Після першого збігу | [1,2,3].find(x => x>1) -> 2 |
| filter() | Усі відповідні елементи (масив) | Після проходу всього масиву | [1,2,3].filter(x => x>1) -> [2,3] |
| findIndex() | Індекс знайденого елемента | Після першого збігу | [10,20,30].findIndex(x=>x>10) -> 1 |
| some() | true/false (чи знайшовся хоч один) | Після першого збігу | [1,2,3].some(x=>x>2) -> true |
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.