jsの配列のremove


今日はコードを書く過程で、javascriptの配列は一つの配列から指定された要素を削除したいです.最初はこの要素を直接nullに等しいと思っていましたが、このように配列の中で要素を除去していません.つまり、配列長さは変化していません.

/*
 *    :Array.remove(dx)
 *    :           .
 *    :   
 *    :         
 *	  :pxp
 */
Array.prototype.indexOf = function (val) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == val) {
			return i;
		}
	}
	return -1;
};
Array.prototype.removevalue = function (val) {
	var index = this.indexOf(val);
	if (index > -1) {
		this.splice(index, 1);
	}
};


/*
 *    :Array.remove(dx)
 *    :             .
 *    :   
 *    :         
 *	  :pxp
 */
Array.prototype.remove = function (dx) {
	if (isNaN(dx) || dx > this.length) {
		return false;
	}
	for (var i = 0, n = 0; i < this.length; i++) {
		if (this[i] != this[dx]) {
			this[n++] = this[i];
		}
	}
	this.length -= 1;
};