delete
eliminará la propiedad del objeto, pero no reindexará el array ni actualizará su longitud. Esto hace que aparezca como si fuera indefinido:
> myArray = ['a', 'b', 'c', 'd']
["a", "b", "c", "d"]
> delete myArray[0]
true
> myArray[0]
undefined
Hay que tener en cuenta que en realidad no se establece en el valor undefined
, sino que la propiedad se elimina del array, haciéndolo parecer indefinido. Las herramientas de desarrollador de Chrome hacen esta distinción clara al imprimir empty
al registrar el array.
> myArray[0]
undefined
> myArray
[empty, "b", "c", "d"]
myArray.splice(inicio, cantidadAEliminar)
en realidad elimina el elemento, reindexa el array y cambia su longitud.
> myArray = ['a', 'b', 'c', 'd']
["a", "b", "c", "d"]
> myArray.splice(0, 2)
["a", "b"]
> myArray
["c", "d"]