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 相关文章推荐
通过ifame指向的页面高度调整iframe的高度
Oct 05 Javascript
javascript实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
js控制表单操作的常用代码小结
Aug 15 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
简单理解vue中el、template、replace元素
Oct 27 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
Vue项目中ESlint规范示例代码
Jul 04 Javascript
JavaScript 空间坐标的使用
Aug 19 Javascript
微信小程序实现弹幕墙(祝福墙)
Nov 18 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
matplotlib中legend位置调整解析
2017/12/19 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
django缓存配置的几种方法详解
2018/07/16 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
2014年高三毕业生自我评价
2014/01/11 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
自荐信大全
2019/03/21 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android