欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js去除数组对象中的重复对象

程序员文章站 2022-07-14 07:57:11
...

1、根据数组对象中的id作比较,id相同的去掉。

var arr = [
	{
		DocESOPTerminalId: "632cffab-4d49-45da-9ef7-af263914b6f9",
		LocationName: "测试列",
		FactoryId: "9c895538-6cf0-49a9-aca0-89531936118e",
		WorkShopId: "1b29ff90-aa70-4d37-9650-5989d18f0642",
		LineId: "48d3e7e4-b471-4dd4-a3f8-a380f4e7efe7"
	},
	{
		DocESOPTerminalId: "969d538d-95a1-4db1-b6b4-6b8f58a3f8e3",
		LocationName: "桃子仓库",
		FactoryId: "ae73b680-a88c-40ce-bfb4-853cced01203",
		WorkShopId: "e107b11e-d46b-4d7f-aada-fb09e931bafb",
		LineId: "f308db64-21dd-4750-900f-cd28212cc254",
	},
	{
		DocESOPTerminalId: "dff87fc0-fd96-49c4-b530-abd067d9ac04",
		LocationName: "JIMES",
		FactoryId: "9c895538-6cf0-49a9-aca0-89531936118e",
		WorkShopId: "1b29ff90-aa70-4d37-9650-5989d18f0642",
		LineId: "48d3e7e4-b471-4dd4-a3f8-a380f4e7efe7",
		DocEsopDrawingId: "2135df72-0c8a-484b-8354-8954bb99b814",
		DocEsopDrawingCode: "a31",
		Process: "test1",
		CustomerName: "通用",
		ModelName: "G6-Sycom(35-102-0000199 200)",
		Type: "null(21页)",
		Category: "试产",
	},
	{
		DocESOPTerminalId: "dff87fc0-fd96-49c4-b530-abd067d9ac04",
		LocationName: "JIMES",
		FactoryId: "9c895538-6cf0-49a9-aca0-89531936118e",
		WorkShopId: "1b29ff90-aa70-4d37-9650-5989d18f0642",
		LineId: "48d3e7e4-b471-4dd4-a3f8-a380f4e7efe7",
		DocEsopDrawingId: "7c72a6e4-677d-465a-aa65-24949e5f7d5a",
		DocEsopDrawingCode: "a24",
		Process: "test1",
		CustomerName: "通用",
		ModelName: "G6-Sycom(35-102-0000199 200)",
		Type: "null(1页)",
		Category: "量产",
	},
];
var newArr= [];
var aftID = [];
for(var item of selectRowData){
    if(aftID.indexOf(item['DocESOPTerminalId']) == -1){
        aftID.push(item['DocESOPTerminalId'])
        newArr.push(item);
    }
}
console.log(newArr);

结果如下:
js去除数组对象中的重复对象
2、

			function delObj(obj) {
                var uniques = [];
                var stringify = {};
                for (var i = 0; i < obj.length; i++) {
                    var keys = Object.keys(obj[i]);
                    keys.sort(function(a, b) {
                        return (Number(a) - Number(b));
                    });
                    var str = '';
                    for (var j = 0; j < keys.length; j++) {
                        str += JSON.stringify(keys[j]);
                        str += JSON.stringify(obj[i][keys[j]]);
                    }
                    if (!stringify.hasOwnProperty(str)) {
                        uniques.push(obj[i]);
                        stringify[str] = true;
                    }
                }
                uniques = uniques;
                return uniques;
            }
            var arr = [
                {name:'uzi',color:'blue'},
                {name:'pdd',color:'white'},
                {name:'mlxg',color:'orange'},
                {name:'uzi',color:'blue'},
            ]
            console.log(delObj(arr))

结果如下图所示:
js去除数组对象中的重复对象