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 相关文章推荐
与jquery serializeArray()一起使用的函数,主要来方便提交表单
Jan 31 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
简单实现jQuery级联菜单
Jan 09 Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 Javascript
vue-cli3单页构建大型项目方案
Apr 07 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 程序授权验证开发思路
2009/07/09 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
费用会计岗位职责
2014/01/01 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
2016国庆促销广告语
2016/01/28 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Nginx利用Logrotate实现日志分割
2022/05/20 Servers
vue实现在data里引入相对路径
2022/06/05 Vue.js
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技