Día 10
Set
Set (conjunto) es una colección de elementos. Set sólo puede contener elementos únicos. Veamos cómo crear set en la sección siguiente.
Creación de set vacío
Creación de set a partir de array
const languages = [
"English",
"Finnish",
"English",
"French",
"Spanish",
"English",
"French",
];
const setOfLanguages = new Set(languages);
console.log(setOfLanguages);
Set es un objeto iterable y podemos iterar a través de cada elemento.
const languages = [
"English",
"Finnish",
"English",
"French",
"Spanish",
"English",
"French",
];
const setOfLanguages = new Set(languages);
for (const language of setOfLanguages) {
console.log(language);
}
Añadir un elemento a set
const companies = new Set(); // crear set vacío
console.log(companies.size); // 0
companies.add("Google"); // añadir un elemento a set
companies.add("Facebook");
companies.add("Amazon");
companies.add("Oracle");
companies.add("Microsoft");
console.log(companies.size); // 5 elements in set
console.log(companies);
También podemos utilizar el bucle para añadir elementos a set.
const companies = ["Google", "Facebook", "Amazon", "Oracle", "Microsoft"];
setOfCompanies = new Set();
for (const company of companies) {
setOfCompanies.add(company);
}
Borrar un elemento a set
Podemos eliminar un elemento de set utilizando un método de eliminación.
Comprobación de un elemento en set
El método has puede ayudar a saber si un determinado elemento existe en set.
Limpiar set
Elimina todos los elementos de set.
Vea el ejemplo siguiente para aprender a utilizar set.
const languages = [
"English",
"Finnish",
"English",
"French",
"Spanish",
"English",
"French",
];
const langSet = new Set(languages);
console.log(langSet); // Set(4) {"English", "Finnish", "French", "Spanish"}
console.log(langSet.size); // 4
const counts = [];
const count = {};
for (const l of langSet) {
const filteredLang = languages.filter((lng) => lng === l);
console.log(filteredLang); // ["English", "English", "English"]
counts.push({ lang: l, count: filteredLang.length });
}
console.log(counts);
[
{ lang: "English", count: 3 },
{ lang: "Finnish", count: 1 },
{ lang: "French", count: 2 },
{ lang: "Spanish", count: 1 },
];
Otros casos de uso de set. Por ejemplo, para contar elementos únicos en un array.
const numbers = [5, 3, 2, 5, 5, 9, 4, 5];
const setOfNumbers = new Set(numbers);
console.log(setOfNumbers);
Unión de sets
Para encontrar la unión de dos sets se puede utilizar el operador de dispersión. Busquemos la unión del set A y el set B (A U B)
let a = [1, 2, 3, 4, 5];
let b = [3, 4, 5, 6];
let c = [...a, ...b];
let A = new Set(a);
let B = new Set(b);
let C = new Set(c);
console.log(C);
Intersección de sets
Para encontrar la intersección de dos sets se puede utilizar un filtro. Vamos a encontrar la intersección del set A y el set B (A ∩ B)
let a = [1, 2, 3, 4, 5];
let b = [3, 4, 5, 6];
let A = new Set(a);
let B = new Set(b);
let c = a.filter((num) => B.has(num));
let C = new Set(c);
console.log(C);
Diferencia de sets
Para encontrar la diferencia entre dos sets se puede utilizar un filtro. Vamos a encontrar la diferencia del set A y el set B (A B)
let a = [1, 2, 3, 4, 5];
let b = [3, 4, 5, 6];
let A = new Set(a);
let B = new Set(b);
let c = a.filter((num) => !B.has(num));
let C = new Set(c);
console.log(C);
Map
Creación de un Map vacío
Creación de un Map a partir de un array
countries = [
["Finland", "Helsinki"],
["Sweden", "Stockholm"],
["Norway", "Oslo"],
];
const map = new Map(countries);
console.log(map);
console.log(map.size);
Añadir valores a Map
const countriesMap = new Map();
console.log(countriesMap.size); // 0
countriesMap.set("Finland", "Helsinki");
countriesMap.set("Sweden", "Stockholm");
countriesMap.set("Norway", "Oslo");
console.log(countriesMap);
console.log(countriesMap.size);
Obtención de un valor de Map
Comprobar key en Map
Comprueba si una key existe en un map usando el método has. Retorna true o false.
Obtención de todos los valores de map usando un bucle
🌕 Has conseguido un gran logro, eres imparable. ¡Sigue adelante! Acabas de completar los desafíos del día 10 y llevas 10 pasos de tu camino hacia la grandeza. Ahora haz algunos ejercicios para tu cerebro y para tus músculos.
Ejercicios
Ejercicios:Nivel 1
- crear un set vacío
- Crear un set que contenga de 0 a 10 utilizando el bucle
- Eliminar un elemento de set
- Limpia set
- Crear un set de 5 elementos string a partir de un array
- Crear un map de países y el número de caracteres de un país
Ejercicios:Nivel 2
- Encontrar a unión b
- Encontrar a intersección b
- Encontrar a con b
Ejercicios:Nivel 3
-
Cuántos idiomas hay en el archivo de objetos de países.
-
*** Utiliza los datos de los países para encontrar las 10 lenguas más habladas:
// El resultado debería ser el siguiente
console.log(mostSpokenLanguages(countries, 10))[
({ English: 91 },
{ French: 45 },
{ Arabic: 25 },
{ Spanish: 24 },
{ Russian: 9 },
{ Portuguese: 9 },
{ Dutch: 8 },
{ German: 7 },
{ Chinese: 5 },
{ Swahili: 4 },
{ Serbian: 4 })
];
// El resultado debería ser el siguiente
console.log(mostSpokenLanguages(countries, 3))[
({ English: 91 }, { French: 45 }, { Arabic: 25 })
];
🎉 ¡Felicitaciones! 🎉