delete will delete the object property, but will not reindex the array or update its length. This makes it appears as if it is undefined:
Array.remove method that I always use it in my projects.
and here's some examples of how it could be used:
The length of the array won't change. Splice removes the object and shortens the array. The following code will display "a", "b", "undefined", "d"
Whereas this will display "a", "b", "d"