将数组去重的方法,写到数组的原型上,方便调用
1 ~function () { 2 var aryPro = Array.prototype; 3 aryPro.myDistinct = function () { 4 var obj = {}; 5 for (var i = 0; i < this.length; i++) { 6 var cur = this[i]; 7 obj[cur] == cur ? (this[i] = this[this.length - 1], this.length -= 1, i--) : obj[cur] = cur; 8 } 9 obj = null; 10 return this; 11 }; 12 }(); 13 14 var ary=[1,5,4,5,2,1,2,1]; 15 console.log(ary.myDistinct()); //-->[1,5,4,2]
同理,还可以将一些常用的方法写到原型上,比如Array上实现兼容写法的forEach、map,String上的trim,还有自己增加的截取字符串方法。
这些将我将会封装到自己一个常用的类库上,感兴趣的小伙伴可以关注下~