我们首先使用常规函数的方法实现数组去重。
这里就需要去了解indexOf()
这个方法 :
返回某个指定的字符串值在字符串中首次出现的位置。
注释:indexOf() 方法对大小写敏感!
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
我们通过检索值是否出现返回 -1 来记录数组中第一次出现的值,然后将返回-1(也就是每个值第一次出现,之后出现的就是重复值)的值添加到新数组里。
var arr = [1,2,2,3,4,5];
function a(arr) {
var arr1 = [];
for(var i=0; i<arr.length; i++){
if(arr1.indexOf(arr[i]) === -1){
arr1.push(arr[i]);
// console.log(i);
}
}
return arr1;
}
console.log(a(arr));
接下来我们将利用原型来实现数组去重:
首先写一个数组原型:
Array.prototype.ar = function() {
var newArray = [];
}
然后利用indexOf()
方法去重:
Array.prototype.ar = function() {
var newArray = [];
for(var i=0; i<arr.length; i++){
if(newArray.indexOf(arr[i]) === -1){
newArray.push(arr[i]);
}
}
}
最后打印一下arr。
console.log(arr.ar());
结果如下:
可见打印结果与函数写法一致,证明原型的这个写法正确。