[javascript]数组去重

数组中去除重复元素的算法:

第一种:常用方式。

Array.prototype.unique = function () {

	var r = new Array();

	label:for(var i = 0, n = this.length; i < n; i++) {

		for(var x = 0, y = r.length; x < y; x++) {

			if(r[x] == this[i]) {

				continue label;

			}

		}

		r[r.length] = this[i];

	}

	return r;

}

 

第二种:一行代码正则方式。

Array.prototype.unique = function () {

	return this.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(",");

}

第三种:利用javascript语言特性。

Array.prototype.unique = function() {

	var temp = {}, len = this.length;

	for(var i=0; i < len; i++)  {

		var tmp = this[i];

		if(!temp.hasOwnProperty(tmp)) {

			temp[this[i]] = "hoho";

		}

	}

	this.length = 0;

	len = 0;

	for(var i in temp) {

		this[len++] = i;

	}

	return this;

}

第四种:循环一遍方式。

Array.prototype.unique = function () {

	var temp = new Array();

  	this.sort();

  	for(i = 0; i < this.length; i++) {

  		if( this[i] == this[i+1]) {

			continue;

	    }

  		temp[temp.length]=this[i];

  	}

  	return temp;

 

}

你可能感兴趣的:(JavaScript)