En este artículo discutiremos el objeto Set proporcionado por ES6. Un conjunto es una colección de elementos que son únicos, es decir, ningún elemento puede repetirse. Los conjuntos en ES6 están ordenados: los elementos del conjunto se pueden iterar en el orden de inserción. El conjunto puede almacenar cualquier tipo de valores, ya sean primitivos u objetos.

Sintaxis:

new Set([it]);

Parameter: 
it - It is an iterable object whose all elements are 
added to the new set created, 
If the parameter is not specified or null is passed 
then new set created is empty.

Returns:
A new set object

Ahora creemos algunos conjuntos:
Ejemplo:

var set1 = new Colocar(["sumit","sumit","amit","anil","anish"]);

 

var set2 = new Set("fooooooood");

 

var set3 = new Colocar([10, 20, 30, 30, 40, 40]);

 

 

var set4 = new Set();

Propiedades:
Set.prototype.size
– Devuelve el número de elementos en el Colocar.

Métodos:

  1. Set.prototype.add () – Agrega el nuevo elemento con un especificado valor al final del objeto Set.

    Sintaxis:

    set1.add(val);
    
    Parameter:
    val - It is a value to be added to the set.
    
    Returns: 
    The set object
    

    Ejemplo:

    var set1 = new Set();

     

    set1.add(10);

    set1.add(20);

     

    set1.add(30).add(40).add(50);

     

    console.log(set1);

  2. Set.prototype.delete () – Elimina un elemento con el especificado valor desde el objeto Set.
    Sintaxis:
    set1.delete(val);
    
    Parameter:
    val - It is a value to be deleted from the set.
    
    Returns: 
    true if the value is succesfully deleted from the set else returns false.
    

    Ejemplo:

    var set1 = new Set("foooodiiiieee");

     

    console.log(set1.delete('e'));

     

    console.log(set1);

     

    console.log(set1.delete('g'));

  3. Set.prototype.clear () – Elimina todo el elemento del conjunto.
    Sintaxis:
    set1.clear();
    
    Parameter:
    No parameters
    
    Returns: 
    undefined
    

    Ejemplo:

    var set2 = new Colocar([10, 20, 30, 40, 50]);

     

    console.log(set2);

     

    set2.clear()

     

    console.log(set2);

  4. Set.prototype.entries () – Devuelve un objeto iterador que contiene una matriz con las entradas del conjunto, en el orden de inserción.
    Sintaxis:
    set1.entries();
    
    Parameter:
    No parameters
    
    Returns: 
    It returns an iterator object that contains an
    array of [value, value] for every 
    element of the set, in the insertion order. 
    

    Ejemplo

    var set1 = new Set();

     

    set1.add(50);

    set1.add(30);

    set1.add(40);

    set1.add(20);

    set1.add(10);

     

    var getEntriesArry = set1.entries();

     

    console.log(getEntriesArry.next().value);

     

    console.log(getEntriesArry.next().value);

     

    console.log(getEntriesArry.next().value);

  5. Set.prototype.has () – Devuelve verdadero si el especificado valor está presente en el objeto Set.
    Sintaxis:
    set1.has(val);
    
    Parameter:
    val - The value to be searched in the Set
    
    Returns: 
    True if the value is present else it returns false.
    

    Ejemplo:

    var set1 = new Set();

     

    set1.add(50);

    set1.add(30);

                 

    console.log(set1.has(50));

     

    console.log(set1.has(10));

  6. Set.prototype.values ​​() – Devuelve todos los valores del Conjunto en el mismo orden de inserción.
    Sintaxis:
    set1.values();
    
    Parameter:
    No parameters
    
    Returns: 
    An iterator object that contains all the values of the set in the same order 
    as they are inserted. 
    
  7. Set.prototype.keys () – También devuelve todos los valores del Conjunto en la orden de inserción.
    Nota: – Es similar al valores() en caso de Conjuntos
    Sintaxis:
    set1.keys();
    
    Parameter:
    No parameters
    
    Returns: 
    An iterator object that contains all the 
    values of the set in the same order
    as they are inserted. 
    

    Ejemplo:

    var set1 = new Set();

     

    set1.add(50);

    set1.add(30);

    set1.add(40);

    set1.add("Geeks");

    set1.add("GFG");

     

    var getValues = set1.values();

     

    console.log(getValues);

     

    var getKeys = set1.keys();

     

    console.log(getKeys);

  8. Set.prototype.forEach () – Ejecuta lo dado función una vez por cada elemento del conjunto, en el orden de inserción.
    Sintaxis:
    set1.forEach(callback[,thisargument]);
    
    Parameter:
    callback - It is a function which is to be executed for each element of the Set.
    thisargument - Value to be used as this when executing callback.
    
    Returns: 
    Undefined
    

    La función de devolución de llamada se proporciona con los tres parámetros siguientes:

    • la clave de elemento
    • la valor del elemento
    • la Establecer objeto ser atravesado

    Ejemplo:

    var set1 = new Set();

     

    set1.add({Firstname: "Sumit", Lastname: "Ghosh"});

    set1.add(50);

    set1.add(30);

    set1.add(40);

    set1.add("Geeks");

    set1.add("GFG");

     

    function printOne(values)

    {

        console.log(values);

    }

     

    set1.forEach(printOne);

     

    function printTwo(key, values)

    {

        console.log(key+"  "+values);

    }

     

    set1.forEach(printTwo);

     

    function printThree(key, values, set)

    {

        

        

                     

        console.log(key+"  "+values);

        console.log(set);

    }

     

    set1.forEach(printThree);

    Nota:- En el ejemplo anterior, usamos una función de devolución de llamada simple que simplemente imprime un elemento en la consola, puede diseñarse para realizar cualquier operación compleja según los requisitos

  9. Set.protoype[@@iterator]() – Devuelve una función de iterador Set que es valores() función por defecto.
    Sintaxis:
    set1[Symbol.iterator]();
    
    Parameter:
    No parameters
    
    Returns: 
    A Set iterator function and it is values() by default.

    Ejemplo:

    var set1 = new Colocar(["sumit","sumit","amit","anish"]);

     

    var getit = set1[Symbol.iterator]();

     

     

    console.log(getit.next());

     

    console.log(getit.next());

     

    console.log(getit.next());

     

    console.log(getit.next());

Establecer operaciones:

  1. subconjunto() – Devuelve verdadero si Establecer A es un subconjunto de Conjunto B.
    A Establecer A se dice que es un subconjunto de Conjunto B, si todos los elementos de Establecer A también está presente en Conjunto B.
    Ahora implementemos y usemos la función de subconjunto.
    Ejemplo:

    Set.prototype.subSet = function(otherSet)

    {

        

        

        

        if(this.size > otherSet.size)

            return false;

        else

        {

            for(var elem of this)

            {

                

                

                

                if(!otherSet.has(elem))

                    return false;

            }

            return true;

        }

    }

     

     

    var setA = new Colocar([10, 20, 30]);

    var setB = new Colocar([50, 60, 10, 20, 30, 40]);

    var setC = new Colocar([10, 30, 40, 50]);

     

    console.log(setA.subSet(setB));

     

    console.log(setA.subSet(setC));

     

    console.log(setC.subSet(setB));

  2. Unión() – Devuelve un Conjunto que consiste en la unión de Establecer A y Conjunto B
    Se dice que un conjunto es una unión de dos conjuntos, si contiene todos los elementos de Establecer A así como todos los elementos de Conjunto B, pero no contiene elementos duplicados.
    Por ejemplo: si un elemento está presente en ambos Establecer A y Conjunto B luego, la unión de los conjuntos A y B contendrá la copia única del elemento.
    Dejemos implementar y usar la función de unión.
    Ejemplo:

    Set.prototype.union = function(otherSet)

    {

        

        var unionSet = new Set();

     

        

        

        for (var elem of this)

        {

            unionSet.add(elem);

        }

     

        

        

        for(var elem of otherSet)

            unionSet.add(elem);

     

        

        return unionSet;

    }

     

    var set1 = new Colocar([10, 20, 30, 40, 50]);

    var set2 = new Colocar([40, 50, 60, 70, 80]);

     

    var unionSet = set1.union(set2);

     

    console.log(unionSet.values());

  3. intersección() – Devuelve la intersección de Establecer A y Conjunto B.
    Se dice que un conjunto es la intersección de Establecer A y B si contiene un elemento que está presente tanto en Establecer A y Conjunto B.
    Dejemos implementar y utilizar la función de intersección
    Ejemplo:

    Set.prototype.intersection = function(otherSet)

    {

        

        var intersectionSet = new Set();

     

        

        for(var elem of otherSet)

        {

            

            

            

            if(this.has(elem))

                intersectionSet.add(elem);

        }

     

    return intersectionSet;                

    }

    var set1 = new Colocar([10, 20, 30, 40, 50]);

    var set2 = new Colocar([40, 50, 60, 70, 80]);

     

    var intersectionSet = set1.intersection(set2);

     

    console.log(intersectionSet.values());

  4. diferencia() – Devuelve el conjunto que contiene la diferencia de Establecer A y Conjunto B.
    Se dice que un conjunto es una diferencia de Establecer A y B si contiene un conjunto de elementos e que están presentes en Establecer A pero no en Conjunto B.
    Implementemos y usemos la función de diferencia
    Ejemplo:

    Set.prototype.difference = function(otherSet)

    {

        

         var differenceSet = new Set();

     

        

        for(var elem of this)

        {

            

            

            if(!otherSet.has(elem))

                differenceSet.add(elem);

        }

     

        

        return differenceSet;

    }

     

    var set1 = new Colocar([10, 20, 30, 40, 50]);

    var set2 = new Colocar([40, 50, 60, 70, 80]);

     

    var differenceSet = set1.difference(set2);

     

    console.log(differenceSet);

Referencia:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Set

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *