js对象数组去重按对象中的某个属性去重

<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
</head>
<body>
    <h2>去重之前:</h2>
    <div id="uniqueArrayBefore"></div>
    <h2>去重之后:</h2>
    <div id="uniqueArrayAfter"></div>
</body>
<script>
    var printinfos = [{
        printname: "一分钱测试票",
        num: 1,
        printtime: "2021-09-27 11:09:55"
    },
    {
        printname: "一分钱测试票",
        num: 2,
        printtime: "2021-09-28 11:09:55"
    },
    {
        printname: "测试票",
        num: 5,
        printtime: "2021-09-28 11:09:55"
    }]
    $(function(){
        $("#uniqueArrayBefore").text(JSON.stringify(printinfos));
        console.log(printinfos);
        const res = new Map();
        var printinfoArr = printinfos.filter(function(currentValue,index,arr){
            if(res.has(currentValue.printname)){
                for(var i = 0; i<arr.length; i++){
                    var obj = arr[i];
                    if(obj.printname === currentValue.printname){// 对象里的唯一标识printname
                        obj.num += currentValue.num;
                        arr[i] = obj;
                        break;
                    }
                }
                return false;
            }else{
                res.set(currentValue.printname, 1);
                return true;
            }
        });
        console.log(printinfoArr);
        $("#uniqueArrayAfter").text(JSON.stringify(printinfoArr));
    })
</script>
</html>
原文地址:https://www.cnblogs.com/sarly/p/15347001.html