数据中的去重算法,常用的
var arr = [1,2,3,5,3,4,5,6,6,"test","test",true];
var person = [
{
name:"李磊",
age:30,
sex:"男",
地点:"广州"
},
{
name:"李磊",
age:30,
sex:"男",
地点:"广州"
},
{
name:"李磊",
age:30,
sex:"男",
地点:"广州"
},
{
name:"李磊",
age:30,
sex:"男",
地点:"广州"
}
];
//方法一
function duplicate(arr,type){
var newArr = [];
var tArr = [];
if(arr.length == 0){
return arr;
}else{
if(type){
for(var i = 0; i < arr.length;i++){
if(!tArr[arr[i][type]]){
newArr.push(arr[i]);
tArr[arr[i][type]] = true;
}
}
return newArr;
}else{
for(var i = 0; i < arr.length;i++){
if(!tArr[arr[i]]){
newArr.push(arr[i]);
tArr[arr[i]] = true;
}
}
return newArr;
}
}
}
//方法二
function es6Duplicate(arr,type){
if(arr.length == 0){
return arr
}else{
if(type){
var obj = {};
var newArr = arr.reduce( (cur,next) => {
obj[next.name] ? "" : obj[next.name] = true && cur.push(next);
return cur;
},[])
return newArr;
}else{
return Array.from(new Set(arr))
}
}
}
console.log(duplicate(arr)) //[ 1, 2, 3, 5, 4, 6, 'test', true ]
console.log(duplicate(person,"name")); // [ { name: '李磊', age: 30, sex: '男', '地点': '广州' } ]