Skip to main content

find() у масиві

Метод find() - один із найчастіше використовуваних у JavaScript для пошуку конкретного елемента в масиві за умовою. Він не фільтрує і не перебирає весь масив заради нового - він знаходить перший відповідний елемент і зупиняється.

Синтаксис

javascript
const result = array.find((element, index, array) => { return умова; });

Параметри колбеку:

АргументОпис
elementПоточний елемент масиву
indexІндекс поточного елемента
arrayСам вихідний масив

Приклад 1. Пошук числа в масиві

javascript
const numbers = [1, 5, 10, 15, 20]; const found = numbers.find(num => num > 10); console.log(found); // 15

find() повернув перше значення, що задовольняє умову (> 10), і зупинив пошук. Якщо нічого не знайдено - повертає undefined.

Приклад 2. Пошук об'єкта за властивістю

javascript
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. Якщо елемент не знайдено

javascript
const arr = [10, 20, 30]; const res = arr.find(num => num > 50); console.log(res); // undefined

Якщо не знайдено жодного відповідного елемента - повертається undefined, а не помилка.

Часті помилки

  1. Очікування масиву замість одного елемента:
javascript
const result = arr.find(num => num > 5); console.log(result.length); // Помилка - find повертає елемент, не масив

Якщо потрібні всі елементи, а не один - використовуй filter().

  1. Забутий return у фігурних дужках:
javascript
arr.find(num => { num > 5 }); // завжди undefined

Правильно:

javascript
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

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.