数组去重
我们先来理解一下:数组去重,顾名思义,就是去掉数组中重复的值,那么我们需要定义一个空数组,用来存放遍历过程中第一次出现的值,还需要定义一个对象,用在比较是否重复。下面看一下代码
//数组去重
Array.prototype.unique = function(){
var arr =[], obj = {}, len = this.length;
for(var i = 0; i < len; i++ ){
if(!obj[this[i]]){
obj[this[i]] = 'a';
arr.push(this[i]);
}
}
return arr;
}
理解一下for循环,obj对象用来比较是否重复,我们把数组里面的值作为对象里面的属性名,并赋值,那么我们就判断当前位是否在对象里面有值,若有,就证明已经存在,若没有,就把当前位进行push到arr里面。
字符串去重
字符串去重与数组去重类似。
//字符串去重
String.prototype.unique = function(){
var s= '', obj = {}; len = this.length;
for(var i = 0; i < len; i++){
if(!obj[this[i]]){
obj[this[i]] = 'a';
s += this[i];
}
}
return s;
}
var s1 = 'aabbccddsss';
console.log(s1.unique());