Array.prototype.remove = function(start, end) {
var n = this.slice((end || start) + 1 || this.length);
return this.length = start < 0 ? this.length + start : start,
this.push.apply(this, n)
}
начало и конец могут быть отрицательными, в этом случае они считаются с конца массива.
если указано только начало, удаляется только один элемент.
функция возвращает новую длину массива.
z=[0,1,2,3,4,5,6,7,8,9];
newlength=z.remove(2,6);
(8) [0, 1, 7, 8, 9]
z=[0,1,2,3,4,5,6,7,8,9];
newlength=z.remove(-4,-2);
(7) [0, 1, 2, 3, 4, 5, 9]
z=[0,1,2,3,4,5,6,7,8,9];
newlength=z.remove(3,-2);
(4) [0, 1, 2, 9]