js去除二维对象数组重复值的解决方案

简介: js去除二维对象数组重复值的解决方案

源数据

    var data = [
        {
            "alarmid": "68E98160-B3ED-41AE-BBC6-83BEF12F91AC",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "3_0.500000_0.800000_0.632797",
            "alarmtime": "2022-02-21 17:16:56",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "FB6C9E63-3CDE-4F25-9BC5-0A967837C92A",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "FE0ED204-9910-4401-B128-E72C75E6556F",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:16:54",
            "devicename": "大华222",
            "ip": "168.0.0.222",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "5A313337-8631-48A0-872A-7DBA7468D35F",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "B27F5B4D-174D-4DB2-8EFA-E05C23ABA248",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.587891",
            "alarmtime": "2022-02-21 17:16:54",
            "devicename": "海康-联迪测试",
            "ip": "192.168.0.131",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "61122207-8C06-456C-8BEA-B0CF49202C4D",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "976C92E8-AB4A-47DA-B3BB-5F441ADE514A",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:16:49",
            "devicename": "烤箱房3",
            "ip": "192.168.11.79",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "FB60207B-1CAF-4444-961E-F9DFE8DAD881",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "3_0.500000_0.800000_0.639997",
            "alarmtime": "2022-02-21 17:15:50",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "BB1D63B1-0CFB-4045-8E60-49160882495F",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "B27F5B4D-174D-4DB2-8EFA-E05C23ABA248",
            "alarmvalue": "2_0.500000_0.800000_1.000000",
            "alarmtime": "2022-02-21 17:15:43",
            "devicename": "海康-联迪测试",
            "ip": "192.168.0.131",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "E76BDA02-0E80-411C-9016-CBC1A296FE88",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "FE0ED204-9910-4401-B128-E72C75E6556F",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:15:42",
            "devicename": "大华222",
            "ip": "168.0.0.222",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "1830DBAA-066B-40AE-A515-34491C8FA4E5",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "976C92E8-AB4A-47DA-B3BB-5F441ADE514A",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:15:38",
            "devicename": "烤箱房3",
            "ip": "192.168.11.79",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "E73ACDB0-84C1-452D-A990-ACF93E3187E7",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "B27F5B4D-174D-4DB2-8EFA-E05C23ABA248",
            "alarmvalue": "2_0.500000_0.800000_1.000000",
            "alarmtime": "2022-02-21 17:15:04",
            "devicename": "海康-联迪测试",
            "ip": "192.168.0.131",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "DFD27743-4745-47B1-B764-06CF37D8B486",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "FE0ED204-9910-4401-B128-E72C75E6556F",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:15:03",
            "devicename": "大华222",
            "ip": "168.0.0.222",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "C15354EC-1192-445E-BF27-E31A780CDFD1",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "976C92E8-AB4A-47DA-B3BB-5F441ADE514A",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:14:59",
            "devicename": "烤箱房3",
            "ip": "192.168.11.79",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "D3F7871A-BFA7-4FBC-889D-7BF5C6D75B22",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "12_2_786441_-1;",
            "alarmtime": "2022-02-21 17:14:14",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "6D11A121-8BFC-4082-976A-1079176849E1",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "B27F5B4D-174D-4DB2-8EFA-E05C23ABA248",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.560078",
            "alarmtime": "2022-02-21 17:13:03",
            "devicename": "海康-联迪测试",
            "ip": "192.168.0.131",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "E79EC87D-160E-4654-BAF5-1A840FA195C4",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "FE0ED204-9910-4401-B128-E72C75E6556F",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:13:02",
            "devicename": "大华222",
            "ip": "168.0.0.222",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "58681EB4-3C3E-4587-9BEA-AE6E642D3FF9",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "976C92E8-AB4A-47DA-B3BB-5F441ADE514A",
            "alarmvalue": "12_1_786445_-1;",
            "alarmtime": "2022-02-21 17:12:57",
            "devicename": "烤箱房3",
            "ip": "192.168.11.79",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "BC2DC442-A2E4-4347-9AFF-A8EDFE9201DE",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "2_0.500000_0.800000_1.000000",
            "alarmtime": "2022-02-21 10:25:57",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "6FBC3C2A-4D77-4A22-99F0-AB16B7975C3D",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "B27F5B4D-174D-4DB2-8EFA-E05C23ABA248",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.646190",
            "alarmtime": "2022-02-21 10:25:55",
            "devicename": "海康-联迪测试",
            "ip": "192.168.0.131",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "CFED55A6-AE68-448F-98D2-82017691D39B",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.762443;6_0.500000_0.800000_1.000000;8_0.500000_0.800000_0.916667",
            "alarmtime": "2022-02-21 00:22:26",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "72F2D2DA-667E-48B8-ACF4-4386721E4A00",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.719730;6_0.500000_0.800000_1.000000;8_0.500000_0.800000_1.000000;9_0.500000_0.800000_0.533154",
            "alarmtime": "2022-02-21 00:12:36",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        },
        {
            "alarmid": "29FC6D72-2A9A-4A8A-B120-8EA895EB2EAA",
            "clientid": "2e11722f670391d487f4c29183a3d099",
            "deviceid": "1735D49D-8642-416E-BAE6-48BE372D0C15",
            "alarmvalue": "2_0.500000_0.800000_1.000000;3_0.500000_0.800000_0.770473;6_0.500000_0.800000_1.000000;8_0.500000_0.800000_1.000000;9_0.500000_0.800000_0.564781",
            "alarmtime": "2022-02-21 00:07:26",
            "devicename": "UNVtest",
            "ip": "rtsp://admin:abc123..@192.168.0.209/media/video1/multicast",
            "clientname": "北师大附属小学"
        }
    ]


遍历数组去重

    var arr = [];
    for (var i = 0; i < data.length; i++) {
        //判断当前数组下标为i的元素是否已经保存到临时数组
        //如果已保存,则跳过,否则将此元素保存到临时数组中
        if (JSON.stringify(arr).toString().indexOf(data[i].deviceid) == -1) {
            arr.push({
                deviceid: data[i].deviceid,
                devicename: data[i].devicename,
                alarmtime: data[i].alarmtime,
                alarmvalue: data[i].alarmvalue,
                ip: data[i].ip
            });
        }
    }
    console.log(arr)


封装函数

    function getUnique(data) {
        var arr = [];
        for (var i = 0; i < data.length; i++) {
            //判断当前数组下标为i的元素是否已经保存到临时数组
            //如果已保存,则跳过,否则将此元素保存到临时数组中
            if (JSON.stringify(arr).toString().indexOf(data[i].deviceid) == -1) {
                arr.push({
                    deviceid: data[i].deviceid,
                    devicename: data[i].devicename,
                    alarmtime: data[i].alarmtime,
                    alarmvalue: data[i].alarmvalue,
                    ip: data[i].ip
                });
            }
        }
        return arr;
    }


@lockdata.cn


相关文章
|
4天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
17 3
|
17天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
17天前
|
JavaScript Java
JS有趣的灵魂 清空数组
JS有趣的灵魂 清空数组
|
1月前
|
JavaScript 前端开发 API
常用JavaScript 数组 API大全
常用JavaScript 数组 API大全
32 0
|
2月前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
28 0
|
1月前
|
存储 JavaScript 前端开发
在JavaScript中,对象和数组是如何进行扩展的?
在JavaScript中,对象和数组是如何进行扩展的?
22 4
|
1月前
|
JavaScript
JS数组增删方法的原理,使用原型定义
JS数组增删方法的原理,使用原型定义
|
2天前
|
JavaScript 前端开发
js 操作数组的方法
js 操作数组的方法
12 4
|
10天前
|
JavaScript 前端开发 索引
JavaScript 数组中的增、删、改、查
JavaScript 数组中的增、删、改、查
|
24天前
|
JavaScript 前端开发
JavaScript数组的功能内置类型
数组是JavaScript的内置类型,JavaScript数组的功能特别强大。下面简单介绍一下JavaScript数组。