前端数组去重
数组去重1 (利用对象)
Array.prototype.unique1 = function(){ var arr = [], obj = {}, len = this.length; for(var i = 0; i < len;i++ ){ if(!obj[this[i]]){ //true obj[this[i]] = 1; arr.push(this[i]); } } return arr; } console.log(arr.unique())
数组去重 2
Array.prototype.unique2 = function () { var res = [this[0]]; for(var i = 1;i < this.length;i++){ var flag = false; for(var j = 0;j < res.length;j++){ if (this[i] == res[j]) { flag = true; break; } } if (!flag) { res.push(this[i]) } } return res; } var arr = [1,1,1,'a','a',2] console.log(arr.unique1())
数组去重 3(利用filter和indexOf)
var arr = [3,2,2,4,5,1,2,2,1,3,undefined,null,null,'1','2']; var r = arr.filter(function(e,index,self){ return self.indexOf(e) == index; //indexOf每次都是返回元素第一次出现的位置,选出第一次出现的位置与下标相等的 }) console.log(r); var r = arr.filter(function(e,index,self){ return self.indexOf(e) == index; //indexOf每次都是返回元素第一次出现的位置,选出第一次出现的位置与下标相等的 }) console.log(r);
数组去重 4(ES6 set方法,能区分数字和字符串)
var arr = [3,2,2,4,5,1,2,2,1,3,undefined,null,null,'1','2']; var set = new Set(arr) console.log(set) 数组去重 5 (ES6 map或forEach方法) var arr = [3,2,2,4,5,1,2,2,1,3,undefined,null,null,'1','2']; var arr1 = []; arr.map(function(e,index,self){ if(self.indexOf(e) == index){ arr1.push(e) }; }) console.log(arr1);
如果你在很年轻的时候,就遭受到了失败,一定要把它当作老天送你的礼物。如果等到四十岁再失败,你会经受不起的。为什么年纪越大,走路越小心,因为越来越经不起跌倒了。