javascript 数组求交集/差集/并集/过滤重复
最近在小一个小程序项目,突然发现 javscript 对数组支持不是很好,连这些基本的功能,都还要自己封装.网上查了下,再结合自己的想法,封装了一下,代码如下.
//数组交集 Array.prototype.intersect = function(){ let mine = this.concat(); for (var i = 0; i < arguments.length; i++) { mine.map(function (value, index) { if (!this.includes(value)) delete mine[index]; }, arguments[i]); } return mine.filter(v => v); }; //数组差集:返回在当前数组中,但不在其他数组中的元素 Array.prototype.minus = function(){ let mine = this.concat(); for (var i = 0; i < arguments.length; i++) { mine.map(function (value, index) { if (this.includes(value)) delete mine[index]; }, arguments[i]); } return mine.filter(v => v); }; //过滤数组重复元素 Array.prototype.unique = function(){ let result = []; this.map(function (value, index) { if (!this.includes(value)) this.push(value); }, result); return result; }; //数组并集 Array.prototype.union = function(){ let result = this.concat(); for (var i = 0; i < arguments.length; i++) { arguments[i].map(function (value, index) { if (!this.includes(value)) this.push(value); }, result); } return result; }; [1, 2, 3, 2, 1].unique(); [1, 2, 3].intersect([1, 2, 8], [1, 2, 6], [1, 2, 3]); [1, 2, 3].minus(["aaaa", 2], [ "cccc", 1]); [1, 2, 3].union(["Robin", "aaaa", "bbbb"], ["aaaa", "cccc"]);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术