JS实现的集合去重,交集,并集,差集功能示例


Posted in Javascript onMarch 13, 2018

本文实例讲述了JS实现的集合去重,交集,并集,差集功能。分享给大家供大家参考,具体如下:

1. js 实现数组的集合运算

为了方便测试我们这里使用nodejs,代码如set_operation.js

function array_remove_repeat(a) { // 去重
  var r = [];
  for(var i = 0; i < a.length; i ++) {
    var flag = true;
    var temp = a[i];
    for(var j = 0; j < r.length; j ++) {
      if(temp === r[j]) {
        flag = false;
        break;
      }
    }
    if(flag) {
      r.push(temp);
    }
  }
  return r;
}
function array_intersection(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 array_remove_repeat(result);
}
function array_union(a, b) { // 并集
  return array_remove_repeat(a.concat(b));
}
function array_difference(a, b) { // 差集 a - b
  //clone = a
  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]) {
        //remove clone[j]
        clone.splice(j,1);
      }
    }
  }
  return array_remove_repeat(clone);
}
a = [1,2,3,4,5];
b = [3,4,5,6,7];
c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);
console.log("test array a:", a, " b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);

2. 测试

我们这里使用nodejs来测试

测试结果:

stephen@stephen:~/openstack/demo/nodejs$ node set_operation.js
test array a: [ 1, 2, 3, 4, 5 ]  b: [ 3, 4, 5, 6, 7 ]
a & b : [ 3, 4, 5 ]
a + b : [ 1, 2, 3, 4, 5, 6, 7 ]
a - b: [ 1, 2 ]
b - a: [ 6, 7 ]

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 1.4.2发布!主要是性能与API
Feb 25 Javascript
Javascript 类与静态类的实现(续)
Apr 02 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
javascript 使用 NodeList需要注意的问题
Mar 04 Javascript
javascript实现随时变化着的背景颜色
Apr 02 Javascript
js文本框输入内容智能提示效果
Dec 02 Javascript
Perl Substr()函数及函数的应用
Dec 16 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
微信小程序实现打卡日历功能
Sep 21 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 Javascript
setTimeout时间设置为0详细解析
Mar 13 #Javascript
vue-cli脚手架config目录下index.js配置文件的方法
Mar 13 #Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 #Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 #Javascript
解决vue-cli创建项目的loader问题
Mar 13 #Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 #Javascript
基于vue.js实现的分页
Mar 13 #Javascript
You might like
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
Javascript注入技巧
2007/06/22 Javascript
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
党员违纪检讨书
2014/02/18 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
拾金不昧感谢信
2015/01/21 职场文书
运动会闭幕词
2015/01/28 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
员工辞职信怎么写
2015/02/27 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
Python 数据科学 Matplotlib图库详解
2021/07/07 Python