编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

使用js 封装一个根据某参数如userId去重的函数

wxchong 2024-08-24 01:40:48 开源技术 9 ℃ 0 评论

使用JavaScript的Array方法来实现这个去重功能,特别是filter()方法结合一个新的Set对象来跟踪已经出现过的userId。以下是一个简单的实现示例:

function removeDuplicatesByUserId(data) {
    const seenIds = new Set();
    return data.filter(item => {
        if (!seenIds.has(item.userId)) {
            seenIds.add(item.userId);
            return true;
        }
        return false;
    });
}

// 测试数据
const testData = [
    {
        "avatar": "/2024/03/29/1773383144955228160.jpg",
        "children": [],
        "id": "1790946391119679508",
        "name": "Mr焦",
        "nodeType": 2,
        "parentId": "1712744422409633793",
        "parentName": "大数据中心",
        "selected": false,
        "userId": "1740633630753202178"
    },
    {
        "avatar": "/2024/03/29/1773383144955228160.jpg",
        "children": [],
        "id": "1790946391119679523",
        "name": "Mr焦",
        "nodeType": 2,
        "parentId": "1712744360883388418",
        "parentName": "测试部",
        "selected": false,
        "userId": "1740633630753202178"
    }
];

// 调用函数并打印结果
console.log(removeDuplicatesByUserId(testData));

这段代码定义了一个removeDuplicatesByUserId函数,它接收一个数组作为参数。在函数内部,首先创建了一个新的Set对象seenIds用于存储已处理过的userId。然后使用filter()方法遍历输入的数组,对于每个元素,如果其userId尚未出现在seenIds中,则将其添加到seenIds并保留该元素;否则,不保留该元素(即去重)。最后,filter()方法返回所有唯一userId对应的元素组成的数组。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表