js 判断数组对象是否有重复
作者:互联网
let arr=[1,2,3,4];
function chengeRepeat(arr){
var obj={};
//把数组的元素变成对象的属性
for(let i in arr){
if(obj[arr[i]]){
return true;
}
//给对象的属性赋值 用于检测相同属性时判断条件
obj[arr[i]]=true;
}
return false;
}
let isRepeat=chengeRepeat(arr);
console.log(isRepeat);
arrobj=[
{name:"hz",age:12},
{name:"hz",age:12},
{name:"zhz",age:12},
]
//1.检测数组对象中属性值否重复
function getIsRepeatResult(arrobj,keyWordsProperty){
// 获取去重后的属性对象后的个数
let num=new Set(arrobj.map(m=>m[keyWordsProperty])).size;
// 去重后的个数与原数组对象的个数是否相等 不相等是有重复
return arrobj.length!==num;
}
console.log(getIsRepeatResult(arrobj,'name'),'getIsRepeatResult');
// 2.根据数组对象中属性去重
function getRemoveRepeatArrObj(arrobj,keyWordsProperty){
// 获取去重后的属性数组
let unrepeatList=Array.from(new Set(arrobj.map(m=>m[keyWordsProperty])));
// 根据属性数组获取对应的属性对象
return unrepeatList.map(m=>arrobj.find(f=>f[keyWordsProperty]==m));
}
const result=getRemoveRepeatArrObj(arrobj,'age');
console.log('result',result);
标签:arr,重复,js,keyWordsProperty,let,数组,arrobj,属性 来源: https://blog.csdn.net/weixin_51755206/article/details/120481459