JS数组交集、差集、并集、补集:ES5实现与扩展方法
版权申诉
5星 · 超过95%的资源 69 浏览量
更新于2024-09-11
收藏 92KB PDF 举报
本文档主要介绍了在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环境。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-10-27 上传
2023-08-09 上传
2020-10-18 上传
2020-10-17 上传
2021-07-16 上传
2019-08-10 上传
weixin_38590775
- 粉丝: 2
- 资源: 915
最新资源
- component-dev-test
- 编辑偏好
- conceitos-do-react
- zendea:使用Go语言编写的免费,开放源代码,自托管的论坛软件官方QQ群:656868
- DESTOON_8.0_BIZ_完整包20210518.zip
- 电子元器件识别(含图片).zip
- framework:个人的、React性的、开放的、私密的、安全的。 拥有和控制您的数据
- 【QGIS跨平台编译】之【MiniZip跨平台编译】:MacOS环境下编译成果(支撑QGIS跨平台编译,以及二次研发)
- mxjs-dropdown-menu
- MLIC:生成可解释的分类规则的新框架
- MusicBox.NET-开源
- 行业分类-设备装置-航拍无人机水上降落平台及降落方法.zip
- RDD:偶然推断RDD复制
- technical_assistant
- 斗地主单机版.zip易语言项目例子源码下载
- asp源码-C9静态文章发布系统 v1.0.zip