分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

JS中数据结构之集合

发布时间:2023-09-06 02:30责任编辑:蔡小小关键词:暂无标签

集合(set)是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。当你想要创建一个数据结构用来保存一些独一无二的元素时就可以用到集合。

基于数组的 Set 类的实现

function Set() {  this.dataStore = [];  this.add = add;  this.remove = remove;  this.size = size;  this.union = union; ?//求并集  this.intersect = intersect; ?//求交集  this.subset = subset; ?//判断本集合是否是另一个集合的子集  this.difference = difference; ?//求本集合相对于另一个集合的补集  this.show = show;  this.contains = contains;}

add() 方法添加元素。使用 add() 方法将数据存储到数组前,先要确保数组中不存在该数据,因为集合中不允许出现重复的数据

function add(data) {  if (this.dataStore.indexOf(data) < 0) { ?    this.dataStore.push(data);    return true;  }else {    return false;  }}

remove() 方法删除元素。首先检查待删元素是否在数组中,如果在, 则使用数组的 splice() 方法删除该元素并返回 true;否则,返回 false,表示集合中并不存在这样一个元素

function remove(data) {  var pos = this.dataStore.indexOf(data);  if (pos > -1) {    this.dataStore.splice(pos,1);    return true;  }else {    return false;  }}

show() 方法显示集合中的成员

function show() {  return this.dataStore;}

contains() 方法检查一个成员是否属于该集合。

function contains(data) {  if (this.dataStore.indexOf(data) > -1) {    return true;  }else {    return false;  }}

union() 方法执行并集操作,将两个集合合并成一个,并返回一个新的大集合

function union(set) {  var tempSet = new Set();   for (var i = 0; i < this.dataStore.length; ++i) {    tempSet.add(this.dataStore[i]);  }  for (var i = 0; i < set.dataStore.length; ++i) {    if (!tempSet.contains(set.dataStore[i])) {      tempSet.dataStore.push(set.dataStore[i]);    }  }  return tempSet;}

intersect() 方法返回两个集合的交集

function intersect(set) {  var tempSet = new Set();  for (var i = 0; i < this.dataStore.length; ++i) {    if (set.contains(this.dataStore[i])) {      tempSet.add(this.dataStore[i]);    }  }  return tempSet;}

subset() 方法判断本集合是否是另一个集合的子集。首先要确定本集合的长度是否小于待比较集合,当该集合的长度小于待比较集合时,再判断该集合内的成员是否都属于待比较集合。

function subset(set) { ?if (this.size() > set.size()) { ???return false; ?} else { ???for(var member of this.dataStore) { ?????if (!set.contains(member)) { ???????return false; ?????} ???} ?} ?return true;}

size() 方法返回集合的元素数量

function size() {  return this.dataStore.length;}

difference() 方法返回本集合相对于另一个集合的补集

function difference(set) {  var tempSet = new Set();  for (var i = 0; i < this.dataStore.length; ++i) {    if (!set.contains(this.dataStore[i])) {      tempSet.add(this.dataStore[i]);    }  }  return tempSet;}

JS中数据结构之集合

原文地址:https://www.cnblogs.com/wenxuehai/p/10291830.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved