Consider:
var a = [1,2,3];
delete a[1];
// a = [1, undefined, 3]
Is it possible to delete 2 such that a becomes [1,3]? So that element 1 becomes 3, element 2 disappears and the length is decreased by one.
Consider:
var a = [1,2,3];
delete a[1];
// a = [1, undefined, 3]
Is it possible to delete 2 such that a becomes [1,3]? So that element 1 becomes 3, element 2 disappears and the length is decreased by one.
Use Array.splice:
> var x = [1, 2, 3, 4];
> x.splice(2, 1);
> console.log(x);
[1, 2, 4]