//利用数组的indexOf方法,IE低版本不支持indexOf方法 if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(value){ for( var i=0;i<this.length;i++ ){ if(this[i] === value){ return i; } } return -1; } } function unique(arr){ var result = []; for(var i=0;i<arr.length;i++){ if( result.indexOf(arr[i]) == -1 ){ result.push(arr[i]); } } return result; } //利用hash表,可能会出现字符串和数字一样的话出错,如var a = [1, 2, 3, 4, '3', 5],会返回[1, 2, 3, 4, 5] function unique1(arr){ var result = []; var hash = {}; for( var i=0;i<arr.length;i++ ){ if( !hash[arr[i]] ){ result.push(arr[i]); hash[arr[i]] = true; } } return result; }