Array.prototype.unique = function(){ var newArray = []; var oldArray = this; if(oldArray.length<=1){ return oldArray; } for(var i=0; oldArray.length>0; i++){ //要一直把oldArray pop完为止.所以长度会一直变短。所以不能用i < oldArray.length的形式来判断是否完成. newArray.push(oldArray.shift()); //oldArray从最前面开始移出数组元素,这样新数组的顺序不会变。 for(var j=0; j<oldArray.length; j++){ if(newArray[i]==oldArray[j]){ oldArray.splice(j,1);//删除重复的元素 j--; } } } return newArray; } var a = [2,4,1,2,3,5,5,5,6,8,7,8,9]; var b=a.unique(); alert(b);//输出2,4,1,3,5,6,8,7,9;