首页 > 编程语言 > 详细

JavaScript 集合

时间:2016-01-11 22:08:47      阅读:224      评论:0      收藏:0      [点我收藏+]
function Set() {
	var items = {};
	this.has = function(value) {
		return value in items
	}
	this.add = function(value) {
		if (!this.has(value)) {
			items[value] = value;
			return true
		}
		return false
	}
	this.remove = function() {
		if (this.has(value)) {
			delete items[value];
			return true
		}
		return false
	}
	this.size = function() {
		return Object.keys(items).length
	}
	this.values = function() {
		return Object.keys(items)
	}
	this.union = function(otherSet) {
		var unionSet = new Set();
		var values = this.values();
		for (var i = 0; i < values.length; i++) {
			unionSet.add(values[i])
		}
		values = otherSet.values();
		for (var i = 0; i < values.length; i++) {
			unionSet.add(values[i])
		}
		return unionSet
	}
	this.intersection = function(otherSet) {
		var intersection = new Set();
		var values = this.values();
		for (var i = 0; i < values.length; i++) {
			if (otherSet.has(values[i])) {
				intersection.add(values[i])
			}
		}
		return intersection
	}
	this.difference = function(otherSet) {
		var differece = new Set();
		var values = this.values();
		for (var i = 0; i < values.length; i++) {
			if (!otherSet.has(values[i])) {
				differece.add(values[i])
			}
		}
		return differece
	}
	this.subSet = function(otherSet) {
		var subSet = new Set();
		if (this.size() > otherSet.size()) {
			return false
		}
		var values = this.values();
		for (var i = 0; values.length; i++) {
			if (!otherSet.has(values[i])) {
				return false
			}
		}
		return true
	}
}

  

JavaScript 集合

原文:http://www.cnblogs.com/shidengyun/p/5122595.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!