Массив объектов TypeScript: изучение различных методов поиска индекса

Работа с массивами объектов — обычная задача при разработке TypeScript. Одной из частых операций является поиск индекса определенного объекта в массиве. В этой статье блога мы рассмотрим несколько методов достижения этой цели, приведя попутно примеры кода.

Методы поиска индекса:

  1. Метод Array.findIndex():
    Метод findIndex()выполняет поиск в массиве и возвращает индекс первого элемента, удовлетворяющего заданному условию. Вот пример:
const array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Bob' }];
const index = array.findIndex(obj => obj.id === 2);
console.log(index); // Output: 1
  1. Метод Array.indexOf():
    Метод indexOf()возвращает первый индекс, по которому можно найти определенный элемент в массиве. Однако для этого требуется значение сравнения, а не условие. Вот пример:
const array = ['apple', 'banana', 'orange'];
const index = array.indexOf('banana');
console.log(index); // Output: 1
  1. Метод Array.find():
    Метод find()возвращает первый элемент, удовлетворяющий заданному условию, но вместо возврата индекса он возвращает сам объект. Однако вы можете объединить его с методом indexOf()для получения индекса. Вот пример:
const array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Bob' }];
const obj = array.find(obj => obj.id === 2);
const index = array.indexOf(obj);
console.log(index); // Output: 1
  1. Метод Array.reduce():
    Метод reduce()можно использовать для перебора массива и поиска индекса определенного объекта на основе условия. Вот пример:
const array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Bob' }];
const index = array.reduce((acc, obj, currentIndex) => {
  if (obj.id === 2) {
    return currentIndex;
  }
  return acc;
}, -1);
console.log(index); // Output: 1