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权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
May 18 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Jun 23 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
用Vue编写抽象组件的方法
May 06 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 Javascript
什么是SOLID
Mar 24 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中使用curl入门教程
2015/07/02 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
JS交换变量的方法
2015/01/21 Javascript
vuejs如何配置less
2017/04/25 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
社区母亲节活动方案
2014/03/05 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
党员检讨书
2014/10/13 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
英文商务邀请函范文
2015/01/31 职场文书
人代会简报
2015/07/21 职场文书
四年级作文之植物
2019/09/20 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python