
JS数组交集、差集、并集、补集:ES5实现与扩展方法
版权申诉

本文档主要介绍了在JavaScript中计算两个数组的交集、差集、并集和补集的两种常见实现方法。首先,作者推荐使用ES5语法,这种方法虽然较为繁琐,但兼容性极佳,无需依赖额外的第三方库。
方法一:利用filter和concat操作
1. 交集:通过`filter`函数检查一个元素是否在另一个数组中存在,如果存在则保留,`indexOf`方法返回值大于-1表示找到。示例代码如下:
```javascript
var c = a.filter(function(v){ return b.indexOf(v) > -1 });
```
2. 差集:同样使用`filter`,但查找元素不在目标数组中的情况,即`indexOf`返回值为-1:
```javascript
var d = a.filter(function(v){ return b.indexOf(v) == -1 });
```
3. 补集:首先找出A数组中的元素不在B数组中,然后找出B数组中不在A数组中的元素,使用逻辑非运算符`!`来实现:
```javascript
var e = a.filter(function(v){ return !b.indexOf(v) }).concat(b.filter(function(v){ return !a.indexOf(v) }));
```
4. 并集:将A数组直接与B数组过滤后仅包含B数组中不在A数组中的元素合并:
```javascript
var f = a.concat(b.filter(function(v){ return !a.indexOf(v) }));
```
方法二:扩展Array原型
为了提高代码的可读性和复用性,作者建议扩展Array对象,添加如`each`和`contains`等辅助方法:
- `each`函数:遍历数组并执行自定义函数,将结果累加到新数组中:
```javascript
Array.prototype.each = function(fn) {
// ...
};
```
- `contains`方法:判断数组是否包含指定元素:
```javascript
Array.prototype.contains = function(suArr) {
// ...
};
```
通过这两种方法,开发者可以根据项目需求和性能考虑选择合适的计算方式来处理JavaScript数组的交集、差集、并集和补集。这种方式既实用又灵活,适用于大部分JavaScript环境。
相关推荐





















weixin_38590775
- 粉丝: 2
最新资源
- 平遥古城宣传动画:体验世界遗产之美
- 实现AD和Auth0服务连通的LDAP连接器指南
- AvalancheJS - 极致的Avalanche平台交互体验
- Codefresh CLI:灵活的命令行界面与Codefresh交互
- Firefox剪贴板插件:扩展你的浏览器功能
- 狗狗生日卡片矢量素材,萌宠周岁设计专用
- 呼和浩特草原旅游宣传Flash动画素材包
- 构建电子商务网站的Wordpress解决方案
- 卡通女人狩猎枪Flash动画素材下载
- 2020年中国年背景矢量素材,中国风新年设计必备
- 构建个性化的个人网站:jpdias.github.io
- 商务名片设计模板:抽象图案正反面AI矢量素材
- 2020鼠年灯笼祥云banner矢量素材
- NEXi激活命令工具的使用方法详细教程
- 文档编译环境模板:从reStructuredText到HTML5的转换工具
- Comnet-team6:计算机网络研究与实践
- 面包店折扣海报设计创意与制作要点
- Kamon在Docker容器中的实践:Grafana/Graphite/Statsd集成指南
- Serfnode:掌握Docker容器农奴权力的创新技术
- Docker 镜像:简化 zigbee 网络的 deCONZ 管理
- Scaleconf网站开发教程:使用Jekyll与Docker部署
- 2020世界水日创意海报设计要点
- 库斯图·辛卡:软件工程领域的敏捷实践与技术转换
- 圣诞节矢量背景图素材,AI格式设计模板