<reponame>wangjunxiao/NFVCloud<gh_stars>0
\subsection*{Set collection as specified in E\+C\+M\+A\+Script6}

{\bfseries Warning\+: ~\newline
v0.\+1 version does not ensure O(1) algorithm complexity (but O(n)). This shortcoming will be addressed in v1.\+0}

\subsubsection*{Usage}

If you want to make sure your environment implements {\ttfamily Set}, do\+:


\begin{DoxyCode}
require('es6-set/implement');
\end{DoxyCode}


If you\textquotesingle{}d like to use native version when it exists and fallback to polyfill if it doesn\textquotesingle{}t, but without implementing {\ttfamily Set} on global scope, do\+:


\begin{DoxyCode}
var Set = require('es6-set');
\end{DoxyCode}


If you strictly want to use polyfill even if native {\ttfamily Set} exists, do\+:


\begin{DoxyCode}
var Set = require('es6-set/polyfill');
\end{DoxyCode}


\subsubsection*{Installation}

\begin{DoxyVerb}$ npm install es6-set
\end{DoxyVerb}


To port it to Browser or any other (non C\+JS) environment, use your favorite C\+JS bundler. No favorite yet? Try\+: \href{http://browserify.org/}{\tt Browserify}, \href{https://github.com/medikoo/modules-webmake}{\tt Webmake} or \href{http://webpack.github.io/}{\tt Webpack}

\paragraph*{A\+PI}

Best is to refer to \href{http://people.mozilla.org/~jorendorff/es6-draft.html#sec-set-objects}{\tt specification}. Still if you want quick look, follow examples\+:


\begin{DoxyCode}
var Set = require('es6-set');

var set = new Set(['raz', 'dwa', \{\}]);

set.size;          // 3
set.has('raz');    // true
set.has('foo');    // false
set.add('foo');    // set
set.size           // 4
set.has('foo');    // true
set.has('dwa');    // true
set.delete('dwa'); // true
set.size;          // 3

set.forEach(function (value) \{
 // 'raz', \{\}, 'foo' iterated
\});

// FF nightly only:
for (value of set) \{
 // 'raz', \{\}, 'foo' iterated
\}

var iterator = set.values();

iterator.next(); // \{ done: false, value: 'raz' \}
iterator.next(); // \{ done: false, value: \{\} \}
iterator.next(); // \{ done: false, value: 'foo' \}
iterator.next(); // \{ done: true, value: undefined \}

set.clear(); // undefined
set.size; // 0
\end{DoxyCode}


\subsection*{Tests \href{https://travis-ci.org/medikoo/es6-set}{\tt }}

\begin{DoxyVerb}$ npm test\end{DoxyVerb}
 