使用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对应的元素组成的数组。
本文暂时没有评论,来添加一个吧(●'◡'●)