Может быть НЕСКОЛЬКО ВОЗМОЖНЫХ СПОСОБОВ проверить, присутствует ли элемент (в вашем случае его объект) в массиве или нет.
const arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
скажем, вы хотите найти объект с id = 3.
1. find:
он ищет элемент в массиве и, если обнаруживает, возвращает этот элемент, иначе return undefined. Он возвращает значение первого элемента в предоставленном массиве, который удовлетворяет предоставленной функции тестирования. Справка
const ObjIdToFind = 5;
const isObjectPresent = arr.find((o) => o.id === ObjIdToFind);
if (!isObjectPresent) {
arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}
2. фильтр:
ищет элементы в массиве и отфильтровывает все элементы, соответствующие условию. Он возвращает новый массив со всеми элементами, и если ни один из них не соответствует условию, то пустой массив. Справка
const ObjIdToFind = 5;
const arrayWithFilterObjects= arr.filter((o) => o.id === ObjIdToFind);
if (!arrayWithFilterObjects.length) {
arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}
3. some:
метод some () проверяет, присутствует ли хотя бы один элемент в массиве, который проходит проверку, реализованную предоставленной функцией. Он возвращает логическое значение. Справка
const ObjIdToFind = 5;
const isElementPresent = arr.some((o) => o.id === ObjIdToFind);
if (!isElementPresent) {
arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}