JS数组交集、并集、差集的示例代码
发布时间 - 2026-01-11 02:55:11 点击率:次本文介绍了JS数组交集、并集、差集,分享给大家,具体如下:

由于下面会用到ES5的方法,低版本会存在兼容,先应添加对应的polyfill
Array.prototype.indexOf = Array.prototype.indexOf || function (searchElement, fromIndex) {
var index = -1;
fromIndex = fromIndex * 1 || 0;
for (var k = 0, length = this.length; k < length; k++) {
if (k >= fromIndex && this[k] === searchElement) {
index = k;
break;
}
}
return index;
};
Array.prototype.filter = Array.prototype.filter || function (fn, context) {
var arr = [];
if (typeof fn === "function") {
for (var k = 0, length = this.length; k < length; k++) {
fn.call(context, this[k], k, this) && arr.push(this[k]);
}
}
return arr;
};
依赖数组去重方法:
// 数组去重
Array.prototype.unique = function() {
var n = {}, r = [];
for (var i = 0; i < this.length; i++) {
if (!n[this[i]]) {
n[this[i]] = true;
r.push(this[i]);
}
}
return r;
}
交集
交集元素由既属于集合A又属于集合B的元素组成
Array.intersect = function(arr1, arr2) {
if(Object.prototype.toString.call(arr1) === "[object Array]" && Object.prototype.toString.call(arr2) === "[object Array]") {
return arr1.filter(function(v){
return arr2.indexOf(v)!==-1
})
}
}
// 使用方式
Array.intersect([1,2,3,4], [3,4,5,6]); // [3,4]
并集
并集元素由集合A和集合B中所有元素去重组成
Array.union = function(arr1, arr2) {
if(Object.prototype.toString.call(arr1) === "[object Array]" && Object.prototype.toString.call(arr2) === "[object Array]") {
return arr1.concat(arr2).unique()
}
}
// 使用方式
Array.union([1,2,3,4], [1,3,4,5,6]); // [1,2,3,4,5,6]
差集
A的差集:属于A集合不属于B集合的元素
B的差集:属于B集合不属于A集合的元素
Array.prototype.minus = function(arr) {
if(Object.prototype.toString.call(arr) === "[object Array]") {
var interArr = Array.intersect(this, arr);// 交集数组
return this.filter(function(v){
return interArr.indexOf(v) === -1
})
}
}
// 使用方式
var arr = [1,2,3,4];
arr.minus([2,4]); // [1,3]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# JS数组交集
# 并集
# 差集
# js
# 交集并集差集
# JS计算两个数组的交集、差集、并集、补集(多种实现方式)
# JavaScript获取两个数组交集的方法
# JavaScript获取多个数组的交集简单实例
# js取两个数组的交集|差集|并集|补集|去重示例代码
# JavaScript实现两个数组的交集
# 不属于
# 给大家
# 大家多多
# fromIndex
# var
# searchElement
# function
# indexOf
# gt
# amp
# lt
# index
# length
# polyfill
# pre
# nbsp
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Windows Hello人脸识别突然无法使用
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何做网站制作流程,*游戏网站怎么搭建?
教学论文网站制作软件有哪些,写论文用什么软件
?
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
使用spring连接及操作mongodb3.0实例
如何在Windows服务器上快速搭建网站?
免费网站制作appp,免费制作app哪个平台好?
青岛网站建设如何选择本地服务器?
在centOS 7安装mysql 5.7的详细教程
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
JavaScript常见的五种数组去重的方式
Laravel Session怎么存储_Laravel Session驱动配置详解
Swift开发中switch语句值绑定模式
如何在VPS电脑上快速搭建网站?
如何在新浪SAE免费搭建个人博客?
如何在云主机快速搭建网站站点?
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
如何在IIS中新建站点并配置端口与IP地址?
Android中AutoCompleteTextView自动提示
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何实现本地化和多语言支持?(i18n教程)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何在阿里云高效完成企业建站全流程?
中山网站推广排名,中山信息港登录入口?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
如何在 Pandas 中基于一列条件计算另一列的分组均值
如何在 React 中条件性地遍历数组并渲染元素
历史网站制作软件,华为如何找回被删除的网站?
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
佛山网站制作系统,佛山企业变更地址网上办理步骤?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
详解vue.js组件化开发实践
Python正则表达式进阶教程_复杂匹配与分组替换解析
node.js报错:Cannot find module 'ejs'的解决办法
教你用AI将一段旋律扩展成一首完整的曲子
javascript基于原型链的继承及call和apply函数用法分析
大连 网站制作,大连天途有线官网?
如何为不同团队 ID 动态生成多个“认领值班”按钮
上一篇:linux下的yum源在什么地方
下一篇:linux中的slpd是什么服务
上一篇:linux下的yum源在什么地方
下一篇:linux中的slpd是什么服务

