方法一:用到js内置的indexOf方法
Array.prototype.unique = function(){ var result = []; for(var i=0,ci;ci=this[i++];){ if(result.indexOf(ci) == -1) result.push(ci); }}
方法二:用到hash表,要求数组元素值只能为字符
Array.prototype.unique=function(){ for(var i=0,temp={},result=[],ci;ci=this[i++];){ if(temp[ci])continue; temp[ci]=1; result.push(ci); } return result;}
方法二中的hash查找比indexOf方法遍历数组快的多,但应用场景有限
方法三:用sort先对数组元素排序
Array.prototype.unique = function(){ this.sort(); var result = [], end = 0; result.push(this[0]); for(var i=0,ci;ci=this[i++];){ if(ci != result[end]){ result.push(ci); end++; } } return result;}