Array.prototype.unique = function() { //IE系列均不兼容 var temp = {};//声明对象用于后面判断数组arr中是否已经存在某元素 var arr = []; var length = this.length; if(new Set()){//判断用户浏览器是否支持ES6语法 arr = Array.from(new Set(this));//数组与Set集合间的转换 }else{ for (var i = 0; i < length; i++) {
if (!temp[this[i]]) {//借助对象判断数组内是否有该元素
temp[this[i]] = true; arr.push(this[i]); }
} } return arr; };
indexOf方法,IE9+
function unique(arr){ var array = []; for (var i in arr){ if(array.indexOf(arr[i]) === -1){ array.push(arr[i]); } } return array; }