數組中去除重複元素的演算法:
第一種:常用方式。
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; }