Sobes.tech
Middle

Hai gestito la situazione in cui indexOf restituisce -1 quando usato in removeItem?

sobes.tech AI

Risposta dell'AI

Да, сталкивался с ситуацией, когда indexOf возвращает -1 при попытке удалить элемент из массива.

Если использовать indexOf для поиска индекса элемента, а затем вызвать splice без проверки, можно случайно удалить последний элемент массива, так как array.splice(-1, 1) удалит последний элемент.

Правильный подход — всегда проверять результат indexOf перед удалением:

function removeItem(array, item) {
  const index = array.indexOf(item);
  if (index !== -1) {
    array.splice(index, 1);
  }
  // Если index === -1, элемент не найден, ничего не делаем
}

Это предотвращает нежелательные изменения массива и ошибки в логике.