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闭包 新手版
Dec 28 Javascript
淘宝搜索框效果实现分析
Mar 05 Javascript
与Math.pow 相反的函数使用介绍
Aug 04 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 Javascript
详解webpack 入门与解析
Apr 09 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
jquery select操作的日期联动实现代码
2009/12/06 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python提取页面内url列表的方法
2015/05/25 Python
python与php实现分割文件代码
2017/03/06 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
python3.6数独问题的解决
2019/01/21 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
Python如何实现远程方法调用
2020/08/07 Python
Python 里最强的地图绘制神器
2021/03/01 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
过程装备与控制工程专业求职信
2014/07/02 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android