方法1,提取JQ(来源网络),此方法完整。
Array.prototype.unique = function(){ var results=this.sort() for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[ i - 1 ] ) { results.splice( i--, 1 ); } } return results; }
方法2,方法完整。
Array.prototype.unique = function(){ var newArray = [], temp = {}; for(var i = 0; i < this.length; i++){ temp[typeof(this[i])+this[i]] = this[i]; } for(var j in temp){ newArray.push(temp[j]); } return newArray; };
方法3,不完整。
Array.prototype.contains = function(item){ return RegExp( "\\b"+item+"\\b").test(this); }; Array.prototype.unique = function(){ var returnArr = []; for ( var i = 0 , len = this.length; i < len; i++){ if( !returnArr.contains(this[i]) ) returnArr.push(this[i]); } return returnArr; }
为什么说前2个是完整的,因为相对不会出现像这样的bug:['1',1]=>1。