JavaScript数组去重的原型方法

时间:2022-08-24 22:25:40

      本文主要说明两种原型方法来过滤数组中的重复元素。

方法一:

思路:1)构建一个新的数组存放结果;

          2)for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比;

          3)若结果数组中没有该元素,则存到结果数组中。

代码实现:

Array.prototype.unique1 = function(){
var res = [this[0]];
for(var i = 1; i < this.length; i++){
var repeat = false;
for(var j = 0; j < res.length; j++){
if(this[i] == res[j]){
repeat= true;
break;
}
}
if(!repeat){
res.push(this[i]);
}
}
return res;
}
var arrNum2 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22];
console.log(arrNum2.unique1());
方法二:

思路:1)构建一个临时数组存放结果;

          2)循环遍历当前数组,判断当前数组下标为i的元素是否已经保存在临时数组,如果已保存,则跳过,否则将此元素保存到临时数组中。

代码实现:

    Array.prototype.method1 = function(){
var arr=[]; //定义一个临时数组
for(var i = 0; i < this.length; i++){ //循环遍历当前数组
//判断当前数组下标为i的元素是否已经保存到临时数组
//如果已保存,则跳过,否则将此元素保存到临时数组中
if(arr.indexOf(this[i]) == -1){
arr.push(this[i]);
}
}
return arr;
};
var arrNum1 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22];
console.log(arrNum1.method1());

两种方法的结果:

JavaScript数组去重的原型方法