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 相关文章推荐
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
理解Javascript_12_执行模型浅析
Oct 18 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
文本域中换行符的替换示例
Mar 04 Javascript
将字符串中由空格隔开的每个单词首字母大写
Apr 06 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
Vue学习笔记进阶篇之过渡状态详解
Jul 14 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
layui框架table 数据表格的方法级渲染详解
Aug 19 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
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函数学习之PHP函数点评
2012/07/05 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
Joomla开启SEF的方法
2016/05/04 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
简单实现php上传文件功能
2017/09/21 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
JS身份证信息验证正则表达式
2017/06/12 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
python+pyqt实现12306图片验证效果
2017/10/25 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
Python面向对象之Web静态服务器
2019/09/03 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
《桂林山水》教学反思
2014/02/08 职场文书
学习之星事迹材料
2014/05/17 职场文书
服装设计专业求职信
2014/06/16 职场文书
毕业生实习证明
2014/09/19 职场文书
国庆节慰问信
2015/02/15 职场文书
道歉短信大全
2015/05/12 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL