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 中的内存泄露模式
Aug 13 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
juery框架写的弹窗效果适合新手
Nov 27 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
Oct 15 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
省市二级联动小案例讲解
Jul 24 Javascript
JS给按钮添加跳转功能类似a标签
May 30 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
详解基于Vue的支持数据双向绑定的select组件
Sep 02 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
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
使用Python写个小监控
2016/01/27 Python
Python 探针的实现原理
2016/04/23 Python
常见的python正则用法实例讲解
2016/06/21 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python安装本地whl的实例步骤
2019/10/12 Python
浅析python标准库中的glob
2020/03/13 Python
python实现超级马里奥
2020/03/18 Python
python能自学吗
2020/06/18 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
小露珠教学反思
2014/04/30 职场文书
个性婚礼策划方案
2014/05/17 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript