js实现数组去重、交集、差集、并集
var a = [1, 2, 3, 4, 5]; var b = [3, 4, 6, 7]; var c = [2, 8, 5, 0, 5, 2, 6, 7, 2]; //去重 function listRemoveRepeat(c) { var result = []; for (var i = 0; i < c.length; i++) { var flag = true; var temp = c[i]; for (var j = i+1; j < c.length; j++) { if (temp === c[j]) { flag = false; break; } } if (flag) { result.push(temp); } } return result; } //交集 function listIntersection(a, b) { var result = []; for (var i = 0; i < b.length; i++) { var temp = b[i]; for (var j = 0; j < a.length; j++) { if (temp === a[j]) { result.push(temp); break; } } } return result; } //差集:所有属于a且不属于b的元素组成的集合 function listDifference(a, b) { var clone = a.slice(0); for (var i = 0; i < b.length; i++) { var temp = b[i]; for (var j = 0; j < clone.length; j++) { if (temp === clone[j]) { clone.splice(j, 1); } } } return listRemoveRepeat(clone); } //并集 function listUnion(a, b) { return listRemoveRepeat(a.concat(b)); } console.log("去重", listRemoveRepeat(c)); console.log("交集", listIntersection(a, b)); console.log("差集", listDifference(a, b)); console.log("并集", listUnion(a, b));
结果如下:
另外,关于去重,还可以使用indexOf方法:
//去重 function listRemoveRepeat(c){ var result=[]; for (var i = 0; i < c.length; i++) { if(result.indexOf(c[i])==-1){ result.push(c[i]); } } return result; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构