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 相关文章推荐
CSS+Jquery实现页面圆角框方法大全
Dec 24 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
JS实现的仿QQ空间图片弹出效果代码
Feb 23 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
JS前端模块化原理与实现方法详解
Mar 17 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
在vue中使用eslint,配合vscode的操作
Nov 09 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
五一服装活动方案
2014/01/11 职场文书
服装采购员岗位职责
2014/03/15 职场文书
质量承诺书怎么写
2014/05/24 职场文书
公司领导班子对照材料
2014/08/18 职场文书
质量主管工作职责
2014/09/26 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
监守自盗观后感
2015/06/10 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
Python进度条的使用
2021/05/17 Python
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers