Javascript 集合

作者: ak1947 | 来源:发表于2018-08-06 20:51 被阅读0次

集合的特点是不包含重复元素,集合的元素通常无顺序之分。在系统编程中集合很常用,但是并非所有语言都原生支持集合。
集合的三条理论:

  • 不包含任何元素的集合为空集
  • 两个集合包含的元素完全一样,则它们相等
  • 集合A是集合B的子集,如果A的所有元素都在B中出现
    集合的三种基本操作:
  • Union,两个集合的并
  • Intersection,两个集合的交
  • Difference,两个集合的差

集合的js实现:

function Set() {
    this.dataStore = [ ];
    // operations
    this.add = add;
    this.remove = remove;
    this.size = size;
    this.union = union;
    this.intersect = intersect;
    this.subset = subset;
    this.difference = difference;
    this.show = show;
}

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

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

function show() {
    return this.dataStore;
}

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

function union(set) {
    var tmp = new Set();
    for  each (var e in this.dataStore) {
        tmp.add(e);
    }
    for each (var e in set) {
        if (!tmp.contains(e)) {
            tmp.push(e);
        }
    }
    return tmp;
}

function subset(set) {
    if (this.size() > set.size()) {
        return false;
    }
    else {
        for each (var e in this.dataStore) {
            if (!set.contains(e)) {
                return false;
            }
        }
    }
    return true;
}

function size() {
    return this.dataStore.length;
}
// 返回 this - set
function difference(set) {
    var tmp = new Set();
    for each (var e1 in this.dataStore) {
        if (!set.contains(e1)) tmp.add(e1);
    }
    return tmp;
}

相关文章

  • JS-Basic

    本文主要结构 任务JavaScript基础练习JavaScript集合练习 JavaScript基础练习学到的主要...

  • Javascript 集合

    集合的特点是不包含重复元素,集合的元素通常无顺序之分。在系统编程中集合很常用,但是并非所有语言都原生支持集合。集合...

  • JavaScript练习

    github地址: JavaScript基础练习basic practice 1 JavaScript集合练习pr...

  • 任务三——JS练习(个人)

    Javascript基础练习 js-basic-practice-1 Javascript集合练习 pre-pos...

  • JS基础练习

    github作业地址: JavaScript基础练习 JavaScript集合练习 pre-pos 作业总结 1、...

  • javascript 映射 and 集合

    Map and Set 1、Map迭代 如果在map中使用循环,可以使用以下三个方法 map.keys()—— 遍...

  • 04_javascript(二)-DOM

    javascript javascript里没有集合,只有数组 js隔行换色 table标签补充table标签第一...

  • js中的map用法

    java和javascript的map集合对比(仅供自己学习记录)

  • JavaScript 作用域

    在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 JavaScript 局部作用域 函数内声...

  • 一篇文章带你入门jQuery

    [TOC] JavaScript库 JavaScript库:即library,是一个封装好的特定的集合(方法和函数...

网友评论

    本文标题:Javascript 集合

    本文链接:https://www.haomeiwen.com/subject/cbajpftx.html