Skip to content

Commit cf12e8a

Browse files
authored
Merge pull request #4013 from DavidMoralesDeveloper/main
"#21 - javascript"
2 parents 795647a + e159b54 commit cf12e8a

File tree

5 files changed

+423
-0
lines changed

5 files changed

+423
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Utilizando tu lenguaje, emplea 3 mecanismos diferentes para imprimir
2+
// * números del 1 al 10 mediante iteración.
3+
4+
// for --------------
5+
let arr = []
6+
for(let i = 0; i < 10; i++){
7+
arr.push(i)
8+
console.log(i + 'crando numeros en for y push en arr')
9+
}
10+
11+
12+
13+
// forech
14+
arr.forEach( a => {
15+
console.log(a + 'dentro de forech')
16+
});
17+
18+
// for in
19+
for (const numer in arr) {
20+
console.log(numer + 'forin')
21+
}
22+
23+
//for of
24+
for (let i of arr) {
25+
console.log(i + 'forof');
26+
}
27+
28+
29+
// do while ----------------
30+
let result = '';
31+
let i = 0;
32+
33+
do {
34+
i = i + 1;
35+
console.log(i + 'dowhile')
36+
result = result + i;
37+
} while (i < 10);
38+
39+
console.log( result + ' dowhile me da un string de el 1 al 10' );
40+
41+
// while ------------------------------
42+
let y = 0
43+
let z = 0
44+
while (y < 10) {
45+
y++
46+
z += y
47+
console.log(y + 'dentro de while')
48+
}
49+
console.log(z + 'fuera de while')
50+
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
// array -----
2+
const arr = [1,2,3,4,5,6,7,8,9,10]
3+
// * - Añade un elemento al final.
4+
arr. push(11)//11
5+
console.log(arr)
6+
// Añade un elemento al principio.
7+
arr.shift()//1 delete
8+
console.log(arr)
9+
// Añade varios elementos en bloque al final.
10+
arr.push(12, 13, 14) //agrego al final
11+
console.log(arr)
12+
// Añade varios elementos en bloque en una posición concreta.
13+
arr.splice(0,0,-2,-1,0) //agrego en la posicion 0
14+
console.log(arr)
15+
// Elimina un elemento en una posición concreta.
16+
arr.splice(8,1) //7 delete
17+
console.log(arr)
18+
// Actualiza el valor de un elemento en una posición concreta.
19+
arr[5] = 10
20+
console.log(arr)
21+
arr.splice(0,0,-3)
22+
console.log(arr)
23+
// Comprueba si un elemento está en un conjunto = Comprobar si un elemento existe
24+
console.log(arr.includes(10))
25+
// - Elimina todo el contenido del conjunto.
26+
arr.splice(0, arr.length);
27+
console.log(arr)
28+
29+
// Extra
30+
31+
// * Muestra ejemplos de las siguientes operaciones con conjuntos:
32+
// * - Unión.
33+
const num1 = [1, 2, 3, 4, 5]
34+
const num2 = [1, 2, 3, 4, 6, 7]
35+
36+
function union ( arr, arr2) {
37+
let resultado = [...arr] //[1, 2, 3, 4, 5]
38+
for (const iterator of arr2) { // iteracion = [1[0], 2[1], 3[2], 4[3], 6[4], 7[5]]
39+
if(!resultado.includes(iterator) ){ //cuando includes sea false entonces agrega el numero
40+
resultado.push(iterator)
41+
}
42+
43+
}
44+
return resultado
45+
}
46+
console.log(union(num1, num2))
47+
48+
// Intersección.
49+
// La intersección de dos conjuntos (o arreglos) consiste en obtener un nuevo conjunto (o arreglo) que contenga solo los elementos que están presentes en ambos conjuntos (o arreglos) de entrada.
50+
function interseccion (arr, arr2){
51+
let resultado = []
52+
for (const iterator of arr) {
53+
if(arr2.includes(iterator)){ // cuando includes sea true , agrega al []
54+
resultado.push(iterator)
55+
}
56+
}
57+
return resultado
58+
}
59+
60+
console.log(interseccion(num1, num2))
61+
62+
// Diferencia
63+
// La diferencia de dos conjuntos (o arreglos) consiste en obtener un nuevo conjunto (o arreglo) que contenga los elementos que están presentes en el primer conjunto (o arreglo) pero no en el segundo.
64+
65+
function diferencia(arr, arr2) {
66+
let resultado = []
67+
for (const iterator of arr) {
68+
if(!arr2.includes(iterator)){ //false
69+
resultado.push(iterator)
70+
}
71+
}
72+
return resultado
73+
}
74+
75+
console.log(diferencia(num1, num2))
76+
console.log(diferencia(num2, num1))
77+
78+
// Diferencia simétrica.
79+
//recorro el primer arr
80+
function diferenciaSim (arr ,arr2) {
81+
let resultado = []
82+
for (const iterator of arr) {
83+
if(!arr2.includes(iterator)){ //false
84+
resultado.push(iterator)
85+
}
86+
}
87+
//recorre el segundo arr
88+
for (const iterator of arr2) {
89+
if(!arr.includes(iterator)){//false
90+
resultado.push(iterator)
91+
}
92+
}
93+
return resultado
94+
}
95+
96+
console.log(diferenciaSim(num1, num2))
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// Crea un Enum que represente los días de la semana del lunes
2+
// * al domingo, en ese orden. Con ese enumerado, crea una operación
3+
// * que muestre el nombre del día de la semana dependiendo del número entero
4+
// * utilizado (del 1 al 7).
5+
// un objeto o una clase lo averiguaremos.
6+
// que me aproximo a mi respuesta
7+
// https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
8+
9+
const diasDelaSemana = {
10+
lunes: 1,
11+
martes: 2,
12+
miercoles: 3,
13+
jueves: 4,
14+
viernes: 5,
15+
sabado: 6,
16+
domingo: 7,
17+
};
18+
19+
function diaEnNum(num) {
20+
const numeros = Object.entries(diasDelaSemana);
21+
const guardar = numeros.find(([key, value]) => value === 4); //desestructuro mi arr en dos
22+
return guardar[0]
23+
}
24+
25+
console.log(diaEnNum(3))
26+
27+
// * DIFICULTAD EXTRA (opcional):
28+
// * Crea un pequeño sistema de gestión del estado de pedidos.
29+
// * Implementa una clase que defina un pedido con las siguientes características:
30+
// * - El pedido tiene un identificador y un estado.
31+
// * - El estado es un Enum con estos valores: PENDIENTE, ENVIADO, ENTREGADO y CANCELADO.
32+
// * - Implementa las funciones que sirvan para modificar el estado:
33+
// * - Pedido enviado
34+
// * - Pedido cancelado
35+
// * - Pedido entregado
36+
// * (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado, etc...)
37+
// * - Implementa una función para mostrar un texto descriptivo según el estado actual.
38+
// * - Crea diferentes pedidos y muestra cómo se interactúa con ellos.
39+
40+
41+
class estadosDePedidos {
42+
43+
estadosDelPedido = {
44+
PENDIENTE : 1,
45+
ENVIADO : 2,
46+
ENTREGADO : 3,
47+
CANCELADO : 4
48+
}
49+
numero =Object.entries(this.estadosDelPedido)
50+
stado = this.numero.find(([key, value]) => value === 1)
51+
52+
constructor(id){
53+
this.id = id
54+
this.estado = this.stado[0]
55+
56+
}
57+
58+
enviado () {
59+
if(this.estado === 'PENDIENTE'){
60+
this.stado = this.numero.find(([key, value]) => value === 2)
61+
this.estado = this.stado[0]
62+
}else{
63+
console.log('el pedido fue entregado o cancelado')
64+
}
65+
this.descStatus()
66+
}
67+
68+
entregado () {
69+
if (this.estado === 'ENVIADO'){
70+
this.stado = this.numero.find(([key, value]) => value === 3)
71+
this.estado = this.stado[0]
72+
}else{
73+
console.log(`el estado debe ser enviado o fue cancelado`)
74+
}
75+
this.descStatus()
76+
// console.log('gracias por su compra vuelva pronto')
77+
}
78+
79+
cancelado () {
80+
this.stado = this.numero.find(([key, value]) => value === 4)
81+
this.estado = this.stado[0]
82+
this.descStatus()
83+
}
84+
85+
descStatus (){
86+
// Implementa una función para mostrar un texto descriptivo según el estado actual.
87+
console.log(`el estado actual de el pedido ${this.id} tiene un estado de ${this.estado}`)
88+
}
89+
90+
}
91+
92+
93+
94+
let orden1 = new estadosDePedidos(1)
95+
orden1.descStatus()
96+
orden1.enviado()
97+
orden1.entregado()
98+
99+
console.log('-----------------------------------------orden2')
100+
let oreden2 = new estadosDePedidos(2)
101+
oreden2.descStatus()
102+
oreden2.entregado()
103+
oreden2.cancelado()
104+
oreden2.enviado()
105+
106+
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
const apiPokemon = "https://pokeapi.co/api/v2/pokemon";
2+
3+
// async function callApi(url) {
4+
// try {
5+
// const res = await fetch(url);
6+
// const data = await res.json();
7+
// console.log(data);
8+
// console.log('llamado de api')
9+
// } catch (error) {
10+
// console.log(error)
11+
// }
12+
// }
13+
// getAPokemon()
14+
15+
// callApi(apiPokemon);
16+
17+
// -------- extra
18+
// * Utilizando la PokéAPI (https://pokeapi.co), crea un programa por
19+
// * terminal al que le puedas solicitar información de un Pokémon concreto
20+
// * utilizando su nombre o número.
21+
// * - Muestra el nombre, id, peso, altura y tipo(s) del Pokémon
22+
// * - Muestra el nombre de su cadena de evoluciones
23+
// * - Muestra los juegos en los que aparece
24+
// * - Controla posibles errores
25+
26+
async function getAPokemon(num) {
27+
try {
28+
const res = await fetch(`https://pokeapi.co/api/v2/pokemon/${num}`);
29+
const data = await res.json();
30+
console.log("el nombre de mi pokemon es : " + data.name);
31+
console.log("el id de mi pokemon es : " + data.id);
32+
console.log("el peso de mi pokemon es : " + data.weight);
33+
const typesPokemon = data.types.map((tipe) => tipe.type.name);
34+
console.log("Tipos : " + typesPokemon);
35+
const games = data.game_indices.map((game) => game.version.name);
36+
console.log("Juegos: ", games);
37+
// console.log(data.evolution_chain.url) undefined
38+
// ---------------------------
39+
const res1 = await fetch(
40+
`https://pokeapi.co/api/v2/pokemon-species/${num}`
41+
);
42+
const data1 = await res1.json();
43+
const res2 = await fetch(data1.evolution_chain.url);
44+
const data2 = await res2.json();
45+
const chain = data2.chain
46+
47+
function getElvolves (chain) {
48+
console.log(chain["species"]["name"] + ' : evoluciona a ')
49+
if(chain.evolves_to[0] === undefined){
50+
console.log( 'No tiene evoluciones')
51+
}else{
52+
for (const evol of chain.evolves_to) {
53+
getElvolves(evol)
54+
55+
}
56+
57+
}
58+
}
59+
60+
getElvolves(chain)
61+
62+
// console.log(chain.evolves_to[0].species.name)
63+
// console.log(chain.evolves_to[0].evolves_to[0].species.name)
64+
65+
66+
} catch (error) {
67+
console.error("Error al obtener el Pokémon:", error);
68+
}
69+
}
70+
//numero de 1 al 1302
71+
getAPokemon(1);
72+
getAPokemon(132);
73+
74+
75+
// https://pokeapi.co/api/v2/evolution-chain/1/
76+
77+
// {
78+
//
79+
// "chain":
80+
// {
81+
//
82+
//
83+
// "evolves_to": [
84+
// {
85+
//
86+
//
87+
// "is_baby": false,
88+
// "species": {
89+
// "name": "venusaur",
90+
// "url": "https://pokeapi.co/api/v2/pokemon-species/3/"
91+
// }
92+
// }
93+
// ],
94+
// "is_baby": false,
95+
// "species": {
96+
// "name": "ivysaur",
97+
// "url": "https://pokeapi.co/api/v2/pokemon-species/2/"
98+
// }
99+
// }
100+
// ],
101+
// "is_baby": false,
102+
// "species": {
103+
// "name": "bulbasaur",
104+
// "url": "https://pokeapi.co/api/v2/pokemon-species/1/"
105+
// }
106+
// },
107+
// "id": 1
108+
// }

0 commit comments

Comments
 (0)