Удаление элементов массива в JavaScript - различия между методами

Как правильно удалять элементы из массива в JavaScript?

Недавно столкнулся с проблемой удаления элементов из массива и не могу понять разницу между разными подходами. Видел что можно использовать оператор delete или метод splice, но результаты получаются разные.

Вот пример моего кода:

let fruits = ['яблоко', 'банан', 'апельсин', 'груша'];

// Первый способ
delete fruits[2];

// Второй способ  
fruits.splice(2, 1);

Почему результаты отличаются? Когда лучше использовать каждый из методов? Есть ли другие способы удаления элементов которые стоит знать? Буду благодарен за объяснение с примерами.