前端面试-数组去重
方法1:重点是数组相邻的数进行比较,如果没有相等的话就push进去;如果有相等的话,再比较下两个相邻的数,没有有没有相等的话就push进去
Array.prototype.quchong = function(){
var arr = this,
len = arr.length,
b = [],
i,
j;
for(var i=0;i<len;i++){
for(var j=i+1;j<len;j++){
if(arr[i]===arr[j]){
j = ++i;
}
}
b.push(arr[i]);
}
return b;
}
a = [1,2,3,2,1,4];
console.log(a.quchong())
方法2:利用对象的属性,如果对象属性有值说明重复,没值说明不重复,push进去,然后将它作为数组的属性且设值
Array.prototype.quchong = function(){
var arr = this,
len = arr.length,
obj = {},
a = [];
for(var i=0;i<len;i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1;
a.push(arr[i]);
}
}
return a;
}
a = [1,2,3,2,1,4];
console.log(a.quchong())
方法3:通过forEach和indexOf特殊属性进行判断
Array.prototype.quchong = function(){
var arr = this,
len = arr.length,
a = [];
arr.forEach(function(el,i,arr){
var b = arr.indexOf(el,i+1);
if(b===-1){
a.push(arr[i]);
}
})
return a;
}
a = [1,2,3,2,1,4];
console.log(a.quchong())

浙公网安备 33010602011771号