js根据多个属性去重
版本1: function process(arr, ...rest) { const cache = []; let t; function check(item) { let trueList = []; let args; for(args of rest) { trueList.push(item[args] === t[args]) } return trueList.every(item => item) } for (t of arr) { if (cache.find(check)) { continue; } cache.push(t); } return cache; } 版本2: function unique(list, ...rest) { if (Object.prototype.toString.call(list).indexOf('Array') < 0 || list.length === 0) return [] const result = {} for (const item of list) { const key = rest.map(key => item[key]).join('|') result[key] = item } return Object.values(result) }
转载随笔/文章请保留出处和署名,谢谢!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)