其他分享
首页 > 其他分享> > js 判断数组对象是否有重复

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