1. 程式人生 > >javaScript資料結構 05 集合

javaScript資料結構 05 集合

javaScript資料結構之集合

01 集合

集合是由一組無序且唯一的項組成。

02 建立一個集合

在es6中已經有Set,大概用法如下:

var set = new Set([1,2,3,1]);
set.add(5);
console.log(set);

我們寫一個Set

function Set(arr) {
    var _item = {};

    (function Set(list){
        if(list) {
            for(var i = 0; i < list.length; i++) {
                _item[list[i]] = list[i];
            }
        }
    })(arr);

    this
.has = function(value) { return value in _item; }; this.add = function(value) { var isSucc = false; if (!this.has(value)) { _item[value] = value; isSucc = true; } return isSucc; }; this.remove = function(value) { var
isSucc = false; if(!this.has(value)) { delete _item[value]; isSucc = true; }; return true; }; this.clear = function() { _item = {}; }; this.size = function() { var count = 0; for(var attr in _item) { if
(_item.hasOwnProperty(attr)) { ++count; }; } return count; //return Object.keys(_item).length; }; this.values = function() { var keys = []; for(var attr in _item) { if(_item.hasOwnProperty(attr)) { keys.push(attr); }; } return keys; //return Object.keys(_item); }; this.forEach = function(fn) { this.values().forEach(fn); } } var s = new Set([1,23,4,4,1]); s.add(5); console.log(s);