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 function、指针及内置对象
Feb 19 Javascript
JQuery读取XML文件数据并显示的实现代码
Dec 16 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
jQuery实现切换页面过渡动画效果
Oct 29 Javascript
jQuery监听文件上传实现进度条效果的方法
Oct 16 Javascript
JavaScrpt的面向对象全面解析
May 09 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
关于layui flow loading占位图的实现方法
Sep 21 Javascript
Vue element-ui父组件控制子组件的表单校验操作
Jul 17 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使用SOAP调用API操作示例
2018/12/25 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
javascript基础知识
2016/06/07 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
简介Django中内置的一些中间件
2015/07/24 Python
Python中的字符串替换操作示例
2016/06/27 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python判断无向图环是否存在的示例
2019/11/22 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Spy++的使用方法及下载教程
2021/01/29 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
工作的心得体会
2013/12/31 职场文书
发展部经理职责规定
2014/02/22 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
岗位工作说明书
2014/07/29 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
工作服管理制度范本
2015/08/06 职场文书
如何正确理解python装饰器
2021/06/15 Python