--- id: 8d1323c8c441eddfaeb5bdef title: Create a Set Class challengeType: 1 videoUrl: '' localeTitle: Crear una clase de conjunto --- ## Description
En los siguientes ejercicios vamos a crear una función para emular una estructura de datos llamada "Conjunto". Un conjunto es como una matriz, pero no puede contener valores duplicados. El uso típico de un Conjunto es simplemente verificar la presencia de un elemento. Esto se puede implementar con un objeto, por ejemplo:
var set = new Object ();
set.foo = true;
// Ver si existe foo en nuestro set:
console.log (set.foo) // true
En los próximos ejercicios, construiremos un conjunto completo desde cero. Para este ejercicio, cree una función que agregue un valor a nuestra colección de conjuntos siempre que el valor no exista en el conjunto. Por ejemplo:
this.add = function (element) {
// algún código para agregar valor al conjunto
}
La función debe devolver true si el valor se agrega exitosamente y false contrario.
## Instructions
## Tests
```yml tests: - text: Tu clase Set debería tener un método add . testString: 'assert((function(){var test = new Set(); return (typeof test.add === "function")}()), "Your Set class should have an add method.");' - text: Su método de add no debe agregar valores duplicados. testString: 'assert((function(){var test = new Set(); test.add("a"); test.add("b"); test.add("a"); var vals = test.values(); return (vals[0] === "a" && vals[1] === "b" && vals.length === 2)}()), "Your add method should not add duplicate values.");' - text: Su método de add debe devolver true cuando un valor ha sido agregado exitosamente. testString: 'assert((function(){var test = new Set(); var result = test.add("a"); return (result != undefined) && (result === true);}()), "Your add method should return true when a value has been successfully added.");' - text: Su método de add debe devolver false cuando se agrega un valor duplicado. testString: 'assert((function(){var test = new Set(); test.add("a"); var result = test.add("a"); return (result != undefined) && (result === false);}()), "Your add method should return false when a duplicate value is added.");' ```
## Challenge Seed
```js function Set() { // the var collection will hold our set var collection = []; // this method will check for the presence of an element and return true or false this.has = function(element) { return (collection.indexOf(element) !== -1); }; // this method will return all the values in the set this.values = function() { return collection; }; // change code below this line // change code above this line } ```
## Solution
```js // solution required ```