第一种是更常规的方法。

思想:

1。构建一个新数组来存储结果

的2.for环作为一个单元从原始数组各一次,并与结果数组比较。

三.如果元素在结果数组中没有元素,则将其存储在结果数组中。
复制代码代码如下所示:
array.prototype.unique1 =函数(){
{此{ 0 } };
对于(var i = 1;i < this.length;i++){
var重复= false;
对于(var j = 0;J < res.length;j++){
如果(此{ } = }){ { }
重复=真;
打破;
}
}
如果(!重复){
Res.push(本{我});
}
}
返回水库;
}
var arr = { 1,A,A,B,D,E,e,1, 0 }
警报(arr.unique1());

第二种方法比上述方法更有效。

思想:

1。首先,对原始数组进行排序。

2。检查原始数组中的i元素是否与结果数组中的最后一个元素相同,因为它已被排序,因此重复元素将位于相邻位置。

三.如果不相同,则将元素存储在结果数组中。
复制代码代码如下所示:
array.prototype.unique2 =函数(){
(这个排序);第一类
{此{ 0 } };
对于(var i = 1;i < this.length;i++){
如果({ { })!= = { 1 }){ res.length RES
Res.push(本{我});
}
}
返回水库;
}
var arr = { 1,A,A,B,D,E,e,1, 0 }
警报(arr.unique2());

第二种方法也有一定的局限性,因为排序是在权重去除之前进行的,因此最终收益的结果也是排序的,如果不改变数组的顺序来称重,这种方法是不可取的。

第三种方法(推荐)

思想:

1。创建一个新数组来存储结果

2。创建一个空对象

当3.for回路,每个元素的提取和比较的对象。如果元素不重复,则将其存储在结果数组中。同时,将该元素的内容作为对象的属性,赋值为1,存储在第二步所建立的对象中。

说明:至于如何进行比较,则是从原始数组中提取一个元素,然后在对象中访问它。如果我们可以访问这个值,我们将重复它。
复制代码代码如下所示:
array.prototype.unique3 =函数(){
var;
var JSON { };
For (VaR I = 0; I < this.length; i++) {
如果(!{此{ } }){
Res.push(本{我});
{此{ } } = 1;
}
}
返回水库;
}

var arr = { 112112,34,'你好',112112,34,'你好','str ','str1};
警报(arr.unique3());