1.利用构造函数来实现数组去重
在JavaScript中,构造函数模式
function Pt(x, y) {
this.x = x;
this.y = y;
}
Pt.prototype.toString = function () {
return '(' + this.x + ', ' + this.y + ')';
};
var p = new Pt(1, 2);
数组是没有封装好的方法去重 我们在这里 封装一个简单的方法 实现数组去重
这里利用构造模式
var arr =[1,2,3,4,5,3,6,7];
Array.prototype.distinct=function(){
var arr1 = [];
for(i=0;i<arr.length;i++){
这里我们直接使用 indexOf() 方法判断数组是否存在相同的元素 有的话 剔除了 赋值给新的 数组
if(arr1.indexOf(arr[i])==-1) {
arr1.push(arr[i]);
}
}
return arr1
}
console.log(arr.distinct());
2.利用es6新增 的数据结构Set给数组去重
Array.from方法可以将 Set 结构转为数组
function distinct(array) {
return Array.from(new Set(array));
}
distinct([1, 12, 2, 3,14,16,12,16,1])
3.利用对象中 是否存在值
var arr = [0,2,3,4,4,0,2]; var obj = {}; var tmp = []; for(var i = 0 ;i< arr.length;i++){ if( !obj[arr[i]] ){ obj[arr[i]] = 1; tmp.push(arr[i]); } } console.log(tmp);