├── clase-15 ├── After │ ├── styles.css │ ├── img │ │ ├── mac-air.jpg │ │ ├── apple-tv.jpg │ │ ├── iphone-x.jpg │ │ ├── camara-iqual.jpg │ │ ├── xiaomi-mi-9.jpg │ │ ├── motorola-pulse.jpg │ │ ├── mouse-logitech.jpg │ │ ├── notebook-lenovo.jpg │ │ ├── parlante-kalley.png │ │ └── smart-tv-novatech.jpg │ ├── index.html │ ├── json │ │ └── productos.json │ └── script.js ├── index.html └── script.js ├── clase-7 ├── After │ ├── index.js │ ├── index.html │ └── script.js ├── index.html └── script.js ├── Clase-13 ├── styles.css ├── index.html └── script.js ├── clase-8 ├── styles.css ├── index.html └── script.js ├── clase-10 ├── styles.css ├── index.html └── script.js ├── clase-12 ├── index.html └── script.js ├── clase-14 ├── index.html └── script.js ├── clase-2 ├── index.html └── script.js ├── clase-3 ├── index.html └── script.js ├── clase-4 ├── index.html └── script.js ├── clase-5 ├── index.html ├── After │ ├── index.html │ ├── script.js │ └── Pokemon.js └── script.js ├── clase-6 ├── index.html └── script.js ├── clase-1 ├── index.html └── script.js ├── clase-11 ├── index.html └── script.js └── clase-9 ├── index.html └── script.js /clase-15/After/styles.css: -------------------------------------------------------------------------------- 1 | img { 2 | width: 45px; 3 | } -------------------------------------------------------------------------------- /clase-7/After/index.js: -------------------------------------------------------------------------------- 1 | let numero = 342.1412423421 2 | 3 | console.log(parseFloat(numero.toFixed(2))) -------------------------------------------------------------------------------- /Clase-13/styles.css: -------------------------------------------------------------------------------- 1 | /*body { 2 | font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; 3 | }*/ -------------------------------------------------------------------------------- /clase-15/After/img/mac-air.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/mac-air.jpg -------------------------------------------------------------------------------- /clase-15/After/img/apple-tv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/apple-tv.jpg -------------------------------------------------------------------------------- /clase-15/After/img/iphone-x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/iphone-x.jpg -------------------------------------------------------------------------------- /clase-15/After/img/camara-iqual.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/camara-iqual.jpg -------------------------------------------------------------------------------- /clase-15/After/img/xiaomi-mi-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/xiaomi-mi-9.jpg -------------------------------------------------------------------------------- /clase-15/After/img/motorola-pulse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/motorola-pulse.jpg -------------------------------------------------------------------------------- /clase-15/After/img/mouse-logitech.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/mouse-logitech.jpg -------------------------------------------------------------------------------- /clase-15/After/img/notebook-lenovo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/notebook-lenovo.jpg -------------------------------------------------------------------------------- /clase-15/After/img/parlante-kalley.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/parlante-kalley.png -------------------------------------------------------------------------------- /clase-15/After/img/smart-tv-novatech.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/franciscopugh/37475-Js-2022/HEAD/clase-15/After/img/smart-tv-novatech.jpg -------------------------------------------------------------------------------- /clase-8/styles.css: -------------------------------------------------------------------------------- 1 | .productos { 2 | background-color: aquamarine; 3 | margin:2.5px; 4 | padding: 1px; 5 | color:black; 6 | } -------------------------------------------------------------------------------- /clase-10/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: antiquewhite; 3 | color:black; 4 | transition: ease 1s; 5 | } 6 | 7 | .darkMode { 8 | background-color: black; 9 | color:white; 10 | } -------------------------------------------------------------------------------- /clase-12/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-14/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-7/After/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /clase-5/After/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /clase-1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolorum voluptatibus provident ad, nesciunt cumque esse facilis quam? Ullam, modi velit magni nihil optio, cumque ad repellendus id reprehenderit impedit quos.

11 |

Lorem, ipsum.

12 |

Lorem, ipsum dolor.

13 | 14 | 15 | -------------------------------------------------------------------------------- /clase-15/After/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 |


15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /clase-5/After/script.js: -------------------------------------------------------------------------------- 1 | const pikachu1 = new Pikachu("Pika pika", "Electrico", 32, 10) 2 | const charmander1 = new Charmander("Fueguito","Fuego", 30, 8) 3 | const eevee1 = new Eevee("Fatiga", "Normal", 22, 6) 4 | 5 | do { 6 | pikachu1.impactrueno(charmander1) 7 | if(charmander1.vidas <= 0) { 8 | break 9 | } 10 | charmander1.llamarada(pikachu1) 11 | } while(pikachu1.vidas > 0 && charmander1.vidas > 0) 12 | 13 | do { 14 | eevee1.melee(pikachu1) 15 | if(pikachu1.vidas <= 0) { 16 | break 17 | } 18 | pikachu1.impactrueno(eevee1) 19 | console.log(eevee1.vidas) 20 | } while(eevee1.vidas > 0 && pikachu1.vidas > 0) -------------------------------------------------------------------------------- /clase-15/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |


11 |
12 | 13 | 14 | 15 | 16 |
17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /clase-1/script.js: -------------------------------------------------------------------------------- 1 | // Comentario de una linea 2 | /* 3 | Comentario multi-linea 4 | 5 | */ 6 | /** 7 | * Comentario multi-linea 8 | */ 9 | /* 10 | var nombre = 'Francisco' //String o texto 11 | var apellido = "Pugh" 12 | var sueldo = 1050 //Number o numero 13 | var esProfesor = true //Boolean o logicas es_profesor 14 | var esPropietario = null //null o vacio 15 | var esPadre = undefined //undefined o indefinido 16 | 17 | //alert(esPadre) 18 | //console.log(esPadre) 19 | 20 | console.log(nombre) 21 | nombre = 1421456232 22 | console.log(nombre) 23 | nombre = true 24 | console.log(nombre) 25 | nombre = null 26 | console.log(nombre) 27 | nombre = undefined 28 | console.log(nombre) 29 | 30 | */ 31 | var apellido = "Pugh" 32 | apellido = "Rodriguez" //Borrar apellido y crear var apellido con otro valor 33 | 34 | let nombre = "Francisco" 35 | console.log(apellido) 36 | nombre = 12321 37 | console.log(nombre) 38 | 39 | const IVA = 1.21 40 | 41 | IVA = 4224 42 | 43 | -------------------------------------------------------------------------------- /clase-8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /clase-10/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi repellendus nulla atque? Voluptate a cum non ab delectus, nisi molestiae voluptates. Autem provident voluptate ex quos quis itaque fugit temporibus!

14 |

Lorem ipsum dolor sit.

15 |

Lorem, ipsum dolor.

16 |

17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /clase-11/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 |
17 |
18 | 19 | 20 |
21 | 22 | 23 |
24 |


25 |
26 |

27 |
28 |
29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /clase-14/script.js: -------------------------------------------------------------------------------- 1 | /*setTimeout(() => { 2 | console.log("Hola, buenos dias!") 3 | },2002) 4 | 5 | setTimeout(() => { 6 | console.log("Hola, buenas tardes!") 7 | },2002) 8 | 9 | setTimeout(() => { 10 | console.log("Hola, buenas noches!") 11 | },2002) 12 | 13 | let cont = 0 14 | 15 | const interval = setInterval(() => { 16 | if(cont == 2) { 17 | clearInterval(interval) 18 | console.log("Intervalo terminado") 19 | } 20 | 21 | setTimeout(() => { 22 | console.log("Hola, buenas noches!") 23 | cont++ 24 | },1000) 25 | 26 | 27 | }, 5000)*/ 28 | 29 | class User{ 30 | constructor(id, username, email, password) { 31 | this.id = id 32 | this.username = username 33 | this.email = email 34 | this.password = password 35 | } 36 | } 37 | 38 | const user1 = new User(1, "Pablo", "Parker@parker.com", 1234) 39 | const user2 = new User(2, "Juanes", "Juanes@juanes.com", 1234) 40 | const user3 = new User(3, "Maria", "Martinez@m.com", 1234) 41 | const user4 = new User(4, "Tamara", "Tamales@t.com", 1234) 42 | const user5 = new User(5, "Jacinto", "j@j.com", 1234) 43 | const user6 = new User(6, "Huberto", "h@h.com", 1234) 44 | 45 | const users = [user1, user2, user3, user4, user5, user6] 46 | 47 | const solicitarUsuarios = (estado) => { 48 | return new Promise((res, rej) => { 49 | if(estado == true) { 50 | res(users) 51 | } else { 52 | rej("Conexion rechazada") 53 | } 54 | }) 55 | } 56 | 57 | solicitarUsuarios(true) 58 | .then((usuarios) => { 59 | console.table(usuarios) 60 | }) 61 | .catch((error) => { 62 | console.error(error) 63 | }) -------------------------------------------------------------------------------- /clase-8/script.js: -------------------------------------------------------------------------------- 1 | /*const parrafo1 = document.getElementById("parrafo1") 2 | const parrafos = document.getElementsByClassName('parrafos')[0] 3 | const parrafosP = document.getElementsByTagName(`p`)[0] 4 | 5 | const user = {username: "Pancho", password: "123"} 6 | 7 | parrafo1.innerText = `Hola ${user.username}, buenos dias!` 8 | parrafos.innerHTML += "

Hola coders

"*/ 9 | 10 | 11 | class Producto { 12 | constructor(id, nombre, marca, precio,stock) { 13 | this.id = id 14 | this.nombre = nombre 15 | this.marca = marca 16 | this.precio = precio 17 | this.stock = stock 18 | } 19 | } 20 | 21 | const producto1 = new Producto(1, "Yerba Mate", "La yerbita", 400, 20) 22 | const producto2 = new Producto(2, "Fideos", "Fidein", 100, 25) 23 | const producto3 = new Producto(3, "Cafe", "Le Cafe", 500, 22) 24 | const producto4 = new Producto(4, "Arroz", "Arrocin", 200, 15) 25 | const producto5 = new Producto(5, "Lentejas", "Lentejin", 250, 30) 26 | 27 | const productos = [producto1, producto2, producto3, producto4, producto5] 28 | 29 | const divProductos = document.getElementById('productos') 30 | 31 | productos.forEach(productoArray => { 32 | divProductos.innerHTML += ` 33 |
34 |
35 |
${productoArray.nombre}
36 |

Marca: ${productoArray.marca}

37 |

Precio: $${productoArray.precio}

38 |

Stock: ${productoArray.stock}

39 | 40 |
41 |
42 | 43 | ` 44 | }) -------------------------------------------------------------------------------- /clase-10/script.js: -------------------------------------------------------------------------------- 1 | /*localStorage.setItem('saludar', "Hola") 2 | 3 | console.log(localStorage.getItem('saludar')) 4 | 5 | const botonDarkMode = document.getElementById('botonDarkMode') 6 | const botonLightMode = document.getElementById('botonLightMode') 7 | 8 | let darkMode 9 | 10 | if(localStorage.getItem('theme')) { //Si existe o no el item FALSO SI NO EXISTE, VERDADERO SI EXISTE 11 | darkMode = localStorage.getItem('theme') //Consultar 12 | } else { 13 | localStorage.setItem('theme', "light") //Crear 14 | } 15 | 16 | if(darkMode == "dark") { 17 | document.body.classList.add('darkMode') 18 | } 19 | 20 | botonDarkMode.addEventListener("click", () => { 21 | // document.body.style.backgroundColor = "#000" 22 | // document.body.style.color = "#fff" 23 | document.body.classList.add('darkMode') 24 | localStorage.setItem('theme', "dark") 25 | }) 26 | 27 | botonLightMode.addEventListener('click', () => { 28 | //document.body.style.backgroundColor = "#fff" 29 | //document.body.style.color = "#000" 30 | document.body.classList.remove('darkMode') 31 | localStorage.setItem('theme', "light") 32 | })*/ 33 | 34 | class User { 35 | constructor(username, email, password) { 36 | this.username = username 37 | this.email = email 38 | this.password = password 39 | } 40 | 41 | loguearse() { 42 | console.log("Hola, estoy logueado") 43 | } 44 | } 45 | 46 | const user1 = new User("fran", "f@f.com", 123) 47 | const user2 = new User("pepe", "p@p.com", 456) 48 | const user3 = new User("juan", "j@j.com", 789) 49 | 50 | const users = [user1, user2, user3] 51 | 52 | localStorage.setItem('users', JSON.stringify(users)) 53 | 54 | const array2 = JSON.parse(localStorage.getItem('users')) 55 | console.log(array2) 56 | array2[0].loguearse() -------------------------------------------------------------------------------- /clase-3/script.js: -------------------------------------------------------------------------------- 1 | /*console.log(1) 2 | console.log(2) 3 | console.log(3) 4 | console.log(4) 5 | console.log(5) 6 | console.log(6) 7 | console.log(1000) 8 | 9 | // INICIO FIN INICIO A MI FIN 10 | for(let i = 1; i <= 100;i++) { // i += 1 i = i + 1 11 | 12 | // 2 / 2 = 1 resto = 0 13 | // 3 / 2 = 1 resto = 1 14 | if(i % 2 !== 0) { 15 | continue 16 | } 17 | 18 | console.log(i) 19 | } 20 | 21 | let acumulador = 0 22 | 23 | /*0 + 1 +2 +3 +4 +5 +6 +7+ 8+ 9+ 10 24 | 1 + 2 25 | 3 + 3 26 | 6+ 4 27 | 10 + 5 28 | 15 + 6 29 | 21 30 | for(let i = 1; i <= 100; i++) { 31 | acumulador += i //acumulador = acumulador + i 32 | } 33 | 34 | console.log(acumulador) 35 | 36 | let repetir = true 37 | 38 | while(repetir) { 39 | let palabra = prompt("Ingrese No para terminar").toLowerCase() //No NO nO no 40 | 41 | if(palabra === "no") { 42 | repetir = false //break 43 | } 44 | } 45 | */ 46 | let numero1, numero2, operacion 47 | 48 | //isNaN(numero) = verdadero si numero es NaN, falso sino 49 | 50 | 51 | //5 NaN 52 | //F V V 53 | 54 | /* 55 | isNaN(numero1) || isNaN(numero2) 56 | V V V 57 | V V F 58 | F V V 59 | F F F 60 | */ 61 | 62 | do { 63 | numero1 = parseFloat(prompt("Ingrese un numero")) //5 64 | numero2 = parseFloat(prompt("Ingrese otro numero")) 65 | operacion = prompt("Ingrese una operacion (+, -, *, /)") 66 | }while(isNaN(numero1) || isNaN(numero2)) //isNaN(5) = false isNaN(NaN) = true 67 | 68 | switch(operacion) { 69 | case "+": 70 | alert(numero1 + numero2); 71 | break; 72 | case "-": 73 | alert(numero1 - numero2) 74 | break 75 | case "*": 76 | alert(numero1 * numero2) 77 | break 78 | case "/": 79 | alert(numero1 / numero2) 80 | break 81 | default: 82 | alert("Operacion no valida") 83 | break 84 | } 85 | -------------------------------------------------------------------------------- /clase-5/After/Pokemon.js: -------------------------------------------------------------------------------- 1 | class Pokemon { 2 | constructor(nombre, tipo, vidas) { 3 | this.nombre = nombre 4 | this.tipo = tipo 5 | this.vidas = vidas 6 | this.nivel = 1 7 | } 8 | 9 | recibirDaño(dañoAtaque) { 10 | console.log(`${this.nombre} esta recibiendo un ataque de ${dañoAtaque}`) 11 | this.vidas -= dañoAtaque //this.vidas = this.vidas - dañoAtaque 12 | if(this.vidas <= 0) { 13 | console.log(`${this.nombre} se fue a dormir con los Magikarp`) 14 | } else { 15 | console.log(`${this.nombre} sigue vivo con ${this.vidas} de vidas y con ganas de pelear`) 16 | } 17 | } 18 | } 19 | /* 20 | class Electrico extends Pokemon { 21 | 22 | }*/ 23 | 24 | class Pikachu extends Pokemon { 25 | constructor(nombre, tipo, vidas, dañoImpactrueno) { 26 | super(nombre, tipo, vidas) 27 | this.dañoImpactrueno = dañoImpactrueno 28 | } 29 | 30 | impactrueno(pokemonAtacado) { 31 | console.log(`${this.nombre} lanzo impactrueno a ${pokemonAtacado.nombre} con un daño de ${this.dañoImpactrueno}`) 32 | 33 | pokemonAtacado.recibirDaño(this.dañoImpactrueno) 34 | } 35 | } 36 | 37 | class Charmander extends Pokemon { 38 | constructor(nombre, tipo, vidas, dañoLlamarada) { 39 | super(nombre, tipo, vidas) 40 | this.dañoLlamarada = dañoLlamarada 41 | } 42 | 43 | llamarada(pokemonAtacado) { 44 | console.log(`${this.nombre} lanzo llamarada a ${pokemonAtacado.nombre} con un daño de ${this.dañoLlamarada}`) 45 | 46 | pokemonAtacado.recibirDaño(this.dañoLlamarada) 47 | } 48 | } 49 | 50 | class Eevee extends Pokemon { 51 | constructor(nombre, tipo, vidas, dañoMelee) { 52 | super(nombre, tipo, vidas) 53 | this.dañoMelee = dañoMelee 54 | } 55 | 56 | melee(pokemonAtacado) { 57 | console.log(`${this.nombre} lanzo melee a ${pokemonAtacado.nombre} con un daño de ${this.dañoMelee}`) 58 | 59 | pokemonAtacado.recibirDaño(this.dañoMelee) 60 | } 61 | } -------------------------------------------------------------------------------- /clase-9/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 18 |
19 |
20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 |
28 |
29 | 30 | 31 |
32 | 33 | 34 |
35 |


36 | 37 |
38 |

39 |
40 |
41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /clase-15/After/json/productos.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "nombre": "Notebook", 4 | "marca": "Lenovo", 5 | "modelo": "Y510P", 6 | "precio": 60000, 7 | "stock": 30, 8 | "img": "notebook-lenovo.jpg" 9 | }, 10 | { 11 | "nombre": "Celular", 12 | "marca": "Xiomi", 13 | "modelo": "Mi-9", 14 | "precio": 35000, 15 | "stock": 20, 16 | "img": "xiaomi-mi-9.jpg" 17 | }, 18 | { 19 | "nombre": "Smart Tv", 20 | "marca": "Novatech", 21 | "modelo": "50D1U", 22 | "precio": 57000, 23 | "stock": 15, 24 | "img": "smart-tv-novatech.jpg" 25 | }, 26 | { 27 | "nombre": "Camara Deportiva", 28 | "marca": "iQual", 29 | "modelo": "C40", 30 | "precio": 8000, 31 | "stock": 30, 32 | "img": "camara-iqual.jpg" 33 | }, 34 | { 35 | "nombre": "Mouse", 36 | "marca": "Logitech", 37 | "modelo": "G502", 38 | "precio": 1400, 39 | "stock": 7, 40 | "img": "mouse-logitech.jpg" 41 | }, 42 | { 43 | "nombre": "Auriculares", 44 | "marca": "Motorola", 45 | "modelo": "Pulse Escape", 46 | "precio": 4000, 47 | "stock": 20, 48 | "img": "motorola-pulse.jpg" 49 | }, 50 | { 51 | "nombre": "iPhone", 52 | "marca": "Apple", 53 | "modelo": "X Silver", 54 | "precio": 250000, 55 | "stock": 10, 56 | "img": "iphone-x.jpg" 57 | }, 58 | { 59 | "nombre": "Apple TV", 60 | "marca": "Apple ", 61 | "modelo": "32 Gb", 62 | "precio": 45000, 63 | "stock": 30, 64 | "img": "apple-tv.jpg" 65 | }, 66 | { 67 | "nombre": "Parlante", 68 | "marca": "Kalley", 69 | "modelo": "SPK200", 70 | "precio": 34000, 71 | "stock": 21, 72 | "img": "parlante-kalley.png" 73 | }, 74 | { 75 | "nombre": "Mac", 76 | "marca": "Apple", 77 | "modelo": "Air", 78 | "precio": 13000, 79 | "stock": 25, 80 | "img": "mac-air.jpg" 81 | } 82 | 83 | ] -------------------------------------------------------------------------------- /Clase-13/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | 39 |
40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /clase-6/script.js: -------------------------------------------------------------------------------- 1 | /*const valores = [] 2 | const cosas = [true, 56, "Hola", false, "Chau", 100] 3 | 4 | //cosas = null 5 | cosas[0] = "Saludos" 6 | 7 | cosas[10] = "Hola gente" 8 | 9 | console.log(cosas[10]) 10 | //6 11 | for(let i = 0; i < cosas.length; i++) { 12 | console.log(cosas[i]) //cosas[0] cosas[1] ... cosas[4] 13 | } 14 | 15 | console.log(cosas)*/ 16 | 17 | 18 | 19 | /* 20 | let nombreEliminar = prompt("Ingrese un nombre a eliminar") 21 | 22 | let indice = alumnos.indexOf(nombreEliminar) 23 | 24 | if(indice != -1) { 25 | alumnos.splice(indice,1) 26 | } else { 27 | alert("Usuario no encontrado") 28 | } 29 | /* 30 | console.log(alumnos) 31 | 32 | alumnos.splice(0,alumnos.length) 33 | 34 | console.log(alumnos) 35 | /* 36 | alumnos.shift() 37 | let alumnoBrandon = alumnos.pop() 38 | console.log(alumnos) 39 | console.log(alumnoBrandon) 40 | 41 | const tutores = ["Samuel"] 42 | console.log(tutores.shift()) 43 | console.log( tutores) 44 | 45 | const alumnos1 = ["Camilo", "Julieta", "Santiago", "Luca"] 46 | 47 | alumnos1.push("Brandon") 48 | alumnos1.unshift("Diego") 49 | 50 | const alumnos2 = ["Rocio", "Juan", "Santiago", "Fernando"] 51 | const alumnos3 = ["Luciana", "Miguel", "Felipe"] 52 | 53 | const alumnosTotales = alumnos3.concat(alumnos1.concat(alumnos2)) 54 | 55 | console.log(alumnosTotales) 56 | 57 | console.log(alumnosTotales.slice(9,13)) 58 | 59 | console.log(alumnosTotales.includes("Miguel")) 60 | 61 | console.log(alumnosTotales.reverse()) 62 | 63 | console.log(alumnosTotales)*/ 64 | 65 | class Perro { 66 | constructor(id, nombre, color, raza,cachorros) { 67 | this.id = id 68 | this.nombre = nombre 69 | this.color = color 70 | this.raza = raza 71 | this.cachorros = cachorros 72 | } 73 | 74 | } 75 | 76 | const perro1 = new Perro(1, "Cual", "Negro", "Ovejero", ["Cualcito", "Pirata", "Firulais", "Hector", "Tarzan"]) 77 | const perro2 = new Perro(2, "Copito de nieve", "Blanco", "Chihuahua", ["Negrito", "Azulcito"]) 78 | const perro3 = new Perro(3, "Fatiga", "Marron", "Indefinida", []) 79 | const perro4 = new Perro(4, "Hercules", "Dorada", "Golden", ["Marroncito", "Zafiro", "Pepito"]) 80 | 81 | const perros = [perro1, perro2, perro3, perro4] 82 | 83 | console.log(perros) 84 | 85 | console.log(perros[2].raza) -------------------------------------------------------------------------------- /clase-11/script.js: -------------------------------------------------------------------------------- 1 | class Tarea { 2 | constructor(nombre, descripcion) { 3 | this.nombre = nombre 4 | this.descripcion = descripcion 5 | } 6 | } 7 | 8 | let tareas = [] 9 | //NULL o array de tareas 10 | if(localStorage.getItem('tareas')) { 11 | tareas = JSON.parse(localStorage.getItem('tareas')) 12 | } else { 13 | localStorage.setItem('tareas', JSON.stringify(tareas)) 14 | } 15 | 16 | const formTareas = document.getElementById("formTareas") 17 | const divTareas = document.getElementById("divTareas") 18 | const botonTareas = document.getElementById("botonTareas") 19 | 20 | formTareas.addEventListener('submit', (e) => { 21 | e.preventDefault() 22 | console.log(e.target) 23 | let datForm = new FormData(e.target) 24 | 25 | // let nombre = document.getElementById('nombreTarea').value 26 | // let descripcion = document.getElementById('descripcionTarea').value 27 | 28 | let tarea = new Tarea(datForm.get('nombre'), datForm.get('descripcion')) 29 | tareas.push(tarea) 30 | console.log(tareas) 31 | localStorage.setItem('tareas', JSON.stringify(tareas)) 32 | formTareas.reset() 33 | }) 34 | 35 | botonTareas.addEventListener('click', () => { 36 | let arrayStorage = JSON.parse(localStorage.getItem('tareas')) 37 | divTareas.innerHTML = "" 38 | arrayStorage.forEach((tarea, indice) => { 39 | 40 | divTareas.innerHTML += ` 41 |
42 |

${tarea.nombre}

43 |
44 |

${tarea.descripcion}

45 | 46 |
47 |
48 | 49 | ` 50 | }); 51 | 52 | arrayStorage.forEach((tarea, indice) => { 53 | let botonCard = document.getElementById(`tarea${indice}`).lastElementChild.lastElementChild 54 | botonCard.addEventListener('click', () => { 55 | document.getElementById(`tarea${indice}`).remove() 56 | tareas.splice(indice,1) 57 | localStorage.setItem('tareas', JSON.stringify(tareas)) 58 | console.log(`${tarea.nombre} Eliminada`) 59 | }) 60 | }) 61 | 62 | 63 | }) -------------------------------------------------------------------------------- /clase-9/script.js: -------------------------------------------------------------------------------- 1 | /*const boton1 = document.getElementById("boton1") 2 | 3 | boton1.addEventListener("click", () => { 4 | console.log("Di click en boton") 5 | }) 6 | 7 | boton1.addEventListener("click", () => { 8 | console.log("Di click en boton en addEvent") 9 | }) 10 | 11 | boton1.onclick = () => { 12 | console.log("Di click en boton de onclick") 13 | } 14 | 15 | boton1.onclick = () => { 16 | console.log("Di click en boton de onclick otra vez") 17 | } 18 | 19 | const inputColor = document.getElementById('inputColor') 20 | 21 | inputColor.addEventListener('input', () => { 22 | document.body.style.backgroundColor = inputColor.value 23 | console.log(inputColor.value) 24 | }) 25 | 26 | 27 | const input1 = document.getElementById('input1') 28 | const botonBusqueda = document.getElementById('botonBusqueda') 29 | 30 | input1.addEventListener('input', () => { 31 | console.log(input1.value) 32 | }) 33 | 34 | input1.addEventListener('change', () => { 35 | console.log(input1.value) 36 | }) 37 | 38 | botonBusqueda.addEventListener('click', () => { 39 | console.log(input1.value) 40 | })*/ 41 | 42 | class User { 43 | constructor(username, email, password) { 44 | this.username = username 45 | this.email = email 46 | this.password = password 47 | } 48 | } 49 | 50 | const users = [] 51 | 52 | const form = document.getElementById('idForm') 53 | const divUsers = document.getElementById('divUsers') 54 | const botonUsers = document.getElementById('botonUsers') 55 | 56 | form.addEventListener('submit', (event) => { 57 | event.preventDefault() 58 | 59 | let username = document.getElementById('idUser').value 60 | let email = document.getElementById('idEmail').value 61 | let password = document.getElementById('idPassword').value 62 | 63 | const user = new User(username, email, password) 64 | users.push(user) 65 | console.log(users) 66 | 67 | form.reset() 68 | }) 69 | 70 | botonUsers.addEventListener('click', () => { 71 | users.forEach(user => { 72 | divUsers.innerHTML += ` 73 |
74 |
75 |
${user.username}
76 |

${user.email}

77 |
78 |
79 | 80 | ` 81 | }) 82 | }) 83 | 84 | -------------------------------------------------------------------------------- /clase-15/After/script.js: -------------------------------------------------------------------------------- 1 | const tableId = document.getElementById("tableId") 2 | const boton1 = document.getElementById("boton1") 3 | /*fetch('./json/productos.json') 4 | .then(response => response.json()) 5 | .then(productos => { 6 | productos.forEach((producto, indice) => { 7 | tBody.innerHTML += ` 8 | 9 | ${indice + 1} 10 | ${producto.nombre} 11 | ${producto.marca} 12 | ${producto.modelo} 13 | ${producto.precio} 14 | ${producto.stock} 15 | 16 | 17 | 18 | ` 19 | }) 20 | }) 21 | */ 22 | 23 | async function mostrarProductos() { 24 | const productos = await fetch('./json/productos.json') 25 | const productosParseados = await productos.json() 26 | tableId.innerHTML = ` 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
#NombreMarcaModeloPrecioStockImagen
44 | 45 | ` 46 | productosParseados.forEach((producto, indice) => { 47 | tBody.innerHTML += ` 48 | 49 | ${indice + 1} 50 | ${producto.nombre} 51 | ${producto.marca} 52 | ${producto.modelo} 53 | ${producto.precio} 54 | ${producto.stock} 55 | 56 | 57 | 58 | ` 59 | })} 60 | 61 | 62 | boton1.addEventListener('click', mostrarProductos) 63 | 64 | boton1.addEventListener('click', () => { 65 | mostrarProductos() 66 | }) 67 | -------------------------------------------------------------------------------- /clase-15/script.js: -------------------------------------------------------------------------------- 1 | const divDolar = document.getElementById("divDolar") 2 | const divClima = document.getElementById("divClima") 3 | const formClima = document.getElementById("formClima") 4 | 5 | const API_KEY = "bfd1b980aa5416c251b43fb2f1ba6c22"; 6 | 7 | function consultarDolar() { 8 | fetch("https://criptoya.com/api/dolar") 9 | .then(response => response.json()) 10 | .then(({oficial, solidario, blue, mep, ccb, ccl}) => { 11 | divDolar.innerHTML = ` 12 |
13 |

Cotizaciones del dolar

14 |

Oficial:$ ${oficial}

15 |

Solidario:$ ${solidario}

16 |

MEP:$ ${mep}

17 |

CCL:$ ${ccl}

18 |

Blue:$ ${blue}

19 |

CCB:$ ${ccb}

20 |
21 | 22 | ` 23 | }) 24 | } 25 | 26 | consultarDolar() 27 | 28 | setInterval(() => { 29 | consultarDolar() 30 | }, 30000) 31 | 32 | 33 | formClima.addEventListener('submit', (e) => { 34 | e.preventDefault() 35 | 36 | const datForm = new FormData(e.target) 37 | 38 | fetch(`http://api.openweathermap.org/geo/1.0/direct?q=${datForm.get("ciudad")},${datForm.get("provincia")},${datForm.get("pais")}&appid=${API_KEY}`) 39 | .then(response => response.json()) 40 | .then(data => { 41 | let {lat, lon, name, state, country } = data[0] 42 | 43 | fetch(`https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&lang=sp&units=metric&appid=${API_KEY}`) 44 | .then(response => response.json()) 45 | .then(({main, weather}) => { 46 | let {feels_like: sensTermica, humidity: humedad, pressure: presion, temp } = main 47 | let desClima = weather[0].description 48 | divClima.innerHTML = ` 49 |
50 |

Clima en ${name}

51 |

Provincia: ${state}

52 |

Pais: ${country}

53 |

Temperatura: ${temp} °C

54 |

Sensacion Termica: ${sensTermica} °C

55 |

Humedad: ${humedad}%

56 |

Presion: ${presion} hPa

57 |

Descripcion: ${desClima}

58 |
59 | 60 | ` 61 | }) 62 | }) 63 | 64 | }) 65 | 66 | 67 | -------------------------------------------------------------------------------- /clase-12/script.js: -------------------------------------------------------------------------------- 1 | /*let numero = 9 2 | 3 | if(numero >= 10) { 4 | console.log("Mayor que 10") 5 | } else { 6 | console.log("Menor de 10") 7 | } 8 | 9 | let respuesta = (numero % 2 == 0) ? "Numero par" : "" 10 | 11 | console.log(respuesta) 12 | 13 | let desayuno = "" 14 | 15 | let desayunoFinal = (desayuno == "cafe") ? "Cafe con leche" : (desayuno == "te") ? "Te con leche" : (desayuno == "chocolatada") ? "Chocolatada con leche" : "Mate" 16 | 17 | console.log(desayunoFinal) 18 | 19 | localStorage.setItem('aaa', JSON.stringify([{hola: "Hola"}])) 20 | 21 | const productos = JSON.parse(localStorage.getItem("aaa")) ?? [] 22 | 23 | console.log(productos) 24 | 25 | let nombre = undefined 26 | 27 | console.log(nombre ?? "Nombre no valido") 28 | 29 | const producto1 = { 30 | nombre: "Arroz", 31 | precio: 100 32 | } 33 | const producto2 = { 34 | nombre: "Cafe", 35 | precio: 400 36 | } 37 | const producto3 = { 38 | nombre: "Te", 39 | precio: 200 40 | } 41 | const producto4 = { 42 | nombre: "Fideos", 43 | precio: undefined 44 | } 45 | 46 | const productos = [ producto1, producto2, producto3, producto4] 47 | 48 | let acumulador = 0 49 | productos.forEach((producto) => { 50 | acumulador += producto.precio ?? 0 51 | }) 52 | 53 | console.log(acumulador) 54 | 55 | const persona1 = null 56 | 57 | console.log(persona1?.sueldo ?? 0) 58 | 59 | class Gato { 60 | constructor(nombre, color, raza, edad) { 61 | this.n = nombre 62 | this.c = color 63 | this.r = raza 64 | this.e = edad 65 | } 66 | 67 | maullar() { 68 | console.log("Miau miau") 69 | } 70 | } 71 | 72 | const gato1 = new Gato("Stray", "Naranja", "Naranjoso", 2) 73 | const gatitos = [gato1] 74 | function mostrarNombre({n:nombre}) { 75 | console.log(nombre) 76 | } 77 | 78 | function mostrarRazaColor({r:raza, c:color}) { 79 | console.log(raza, color) 80 | } 81 | 82 | function mostrarEdad({e:edad}) { 83 | console.log(edad) 84 | } 85 | 86 | mostrarEdad(gato1) 87 | mostrarNombre(gato1) 88 | mostrarRazaColor(gato1) 89 | */ 90 | //0x0001 = {} 91 | const persona1 = { 92 | nombre: "Pancho", 93 | apellido: "Perez", 94 | edad: 43, 95 | peso: 80, 96 | animales : [ 97 | {nombre: "Pelusa", raza: "Naranjoso"}, 98 | {nombre: "Copito de nieve", raza: "Blanco"} 99 | ] 100 | } 101 | 102 | const persona2 = structuredClone(persona1) 103 | 104 | console.log(persona1) 105 | console.log(persona2) 106 | 107 | persona2.apellido = "Sanchez" 108 | persona2.animales[1] = null 109 | 110 | console.log(persona1) 111 | console.log(persona2) 112 | 113 | -------------------------------------------------------------------------------- /Clase-13/script.js: -------------------------------------------------------------------------------- 1 | class Producto { 2 | constructor(nombre, marca ,precio, stock) { 3 | this.nombre = nombre 4 | this.marca = marca 5 | this.precio = precio 6 | this.stock = stock 7 | } 8 | } 9 | 10 | const producto1 = new Producto("Cafe", "Le Cafe", 430, 10) 11 | const producto2 = new Producto("Arroz", "Arrocin", 120, 3) 12 | const producto3 = new Producto("Arroz", "Arrocin", 120, 3) 13 | const producto4 = new Producto("Arroz", "Arrocin", 120, 3) 14 | const producto5 = new Producto("Arroz", "Arrocin", 120, 3) 15 | 16 | const productos = [producto1, producto2, producto3, producto4, producto5] 17 | 18 | const botonCarrito = document.getElementById("carrito") 19 | const divProductos = document.getElementById("divProductos") 20 | 21 | productos.forEach((producto, indice) => { 22 | divProductos.innerHTML += ` 23 |
24 |
${producto.nombre}
25 |
26 |

${producto.marca}

27 |

$${producto.precio}

28 |

${producto.stock}

29 | 30 |
31 |
32 | ` 33 | }) 34 | 35 | productos.forEach((producto, indice) => { 36 | document.getElementById(`producto${indice}`).lastElementChild.lastElementChild.addEventListener('click', () => { 37 | Toastify({ 38 | text: "Producto agregado al carrito", 39 | duration: 3000, 40 | //destination: "https://github.com/apvarun/toastify-js", 41 | //newWindow: false, 42 | close: true, 43 | gravity: "top", // `top` or `bottom` 44 | position: "right", // `left`, `center` or `right` 45 | stopOnFocus: true, // Prevents dismissing of toast on hover 46 | style: { 47 | background: "linear-gradient(to bottom left, #30655A, #0229BA)", 48 | }, 49 | onClick: function(){ 50 | console.log("Diste click") 51 | } // Callback after click 52 | }).showToast(); 53 | }) 54 | }) 55 | 56 | botonCarrito.addEventListener('click', () => { 57 | Swal.fire({ 58 | title: 'Carrito', 59 | showCancelButton: true, 60 | cancelButtonText: 'Seguir comprando', 61 | confirmButtonText: 'Finalizar compra', 62 | }).then((result) => { 63 | if (result.isConfirmed) { 64 | Swal.fire('Compra finalizada', '', 'success') 65 | } 66 | }) 67 | }) 68 | 69 | -------------------------------------------------------------------------------- /clase-4/script.js: -------------------------------------------------------------------------------- 1 | /*function saludar() { 2 | console.log("Hola, te estoy saludando!") 3 | } 4 | 5 | saludar() 6 | saludar() 7 | saludar()*/ 8 | /* 9 | // valores predeterminados 10 | function sumar(numero1 = 0, numero2 = 0) { 11 | 12 | return numero1 + numero2 13 | } 14 | 15 | let numero1 = parseFloat(prompt("Ingrese un numero")) // 20 16 | let numero2 = parseFloat(prompt("Ingrese otro numero")) // 30 17 | 18 | let x = sumar(20,40) 19 | console.log(x) 20 | 21 | function saludar(nombre) { 22 | //"Hola, me llamo " + nombre + " y te estoy saludando" 23 | return `Hola, me llamo ${nombre} y te estoy saludando` 24 | } 25 | 26 | alert(saludar("Lu")) 27 | 28 | const IVA = 1.21 29 | 30 | function calcularIVA(precioProducto) { 31 | //const IVA = 1.30 ESTO NO SE HACE 32 | return precioProducto * IVA 33 | } 34 | 35 | console.log(calcularIVA(100)) 36 | console.log(IVA) 37 | 38 | 39 | function sumar(num1,num2) { 40 | return num1 + num2 41 | } 42 | 43 | function restar(num1,num2) { 44 | return num1 - num2 45 | } 46 | 47 | function dividir(num1,num2) { 48 | return num1 / num2 49 | } 50 | 51 | function multiplicar(num1,num2) { 52 | return num1 * num2 53 | } 54 | 55 | const sumar = function (num1, num2) { 56 | return num1 + num2 57 | } 58 | 59 | const restar = function (num1, num2) { 60 | return num1 - num2 61 | } 62 | 63 | const multiplicar = function (num1, num2) { 64 | return num1 * num2 65 | } 66 | 67 | const dividir = function (num1, num2) { 68 | return num1 / num2 69 | }*/ 70 | 71 | const sumar = (num1, num2) => num1 + num2 72 | const restar = (num1, num2) => num1 - num2 73 | const multiplicar = (num1, num2) => num1 * num2 74 | const dividir = (num1, num2) => num1 / num2 75 | 76 | let numero1, numero2, operacion 77 | 78 | do { 79 | numero1 = parseFloat(prompt("Ingrese un numero")) 80 | numero2 = parseFloat(prompt("Ingrese otro numero")) 81 | operacion = prompt("Ingrese una operacion") 82 | 83 | if(isNaN(numero1) || isNaN(numero2)) { 84 | alert("Por favor ingresame numeros validos :3") 85 | } 86 | 87 | if(numero2 === 0 && operacion === "/") { 88 | alert("No se puede dividir entre cero") 89 | } 90 | 91 | }while((isNaN(numero1) || isNaN(numero2)) || (numero2 === 0 && operacion === "/")) 92 | 93 | switch(operacion) { 94 | case "+": 95 | alert(sumar(numero1, numero2)) 96 | break 97 | case "-": 98 | alert(restar(numero1, numero2)) 99 | break 100 | case "*": 101 | alert(multiplicar(numero1, numero2)) 102 | break 103 | case "/": 104 | alert(dividir(numero1, numero2)) 105 | break 106 | default: 107 | alert("Operacion no valida") 108 | break 109 | } -------------------------------------------------------------------------------- /clase-7/script.js: -------------------------------------------------------------------------------- 1 | /*const impuestoPais = (producto) => producto * 0.30 2 | const impuestoRetenciones = (producto) => producto * 0.35 3 | const impuestoIVA = (producto) => producto * 0.21 4 | const impuestoX = (producto) => producto * 0.10 5 | 6 | function calcularImpuestos(producto) { 7 | return producto + impuestoPais(producto) + impuestoRetenciones(producto) + impuestoIVA(producto) + impuestoX(producto) 8 | } 9 | 10 | let precioFinal = calcularImpuestos(100) 11 | 12 | console.log(precioFinal) 13 | 14 | const persona1 = new Persona(prompt("Ingrese un nombre"), prompt("Ingrese un apellido"), parseInt(prompt("Ingrese una edad")), parseFloat(prompt("Ingrese un sueldo"))) 15 | 16 | console.log(persona1)*/ 17 | 18 | class Persona { 19 | constructor(id, nombre, apellido, edad, sueldo) { 20 | this.id = id 21 | this.nombre = nombre 22 | this.apellido = apellido 23 | this.edad = edad 24 | this.sueldo =sueldo 25 | } 26 | } 27 | 28 | const persona1 = new Persona(1, "Pepe", "Perez", 30, 10000) 29 | const persona2 = new Persona(2, "Maria", "Martinez", 22, 15000) 30 | const persona3 = new Persona(3, "Pedro", "Parker", 28, 12000) 31 | const persona4 = new Persona(4, "Fernanda", "Fernandez", 32, 18000) 32 | const persona5 = new Persona(5, "Pedro", "Carles", 34, 19000) 33 | 34 | const personas = [persona1, persona2, persona3, persona4, persona5] 35 | 36 | //const personaArray = (persona) => console.log(persona) 37 | /*personas.forEach(persona => { 38 | persona.sueldo *= 1.30 39 | console.log(persona) 40 | }) 41 | 42 | let nombreABuscar = prompt("Ingrese un nombre") 43 | let apellidoABuscar = prompt("Ingrese un apellido") 44 | 45 | console.log(personas.find(persona => persona.nombre == nombreABuscar && persona.apellido == apellidoABuscar)) 46 | 47 | const personasFiltradas = personas.filter(persona => persona.sueldo > 20000) 48 | console.log(personasFiltradas) 49 | personasFiltradas.forEach(persona => { 50 | console.log(persona) 51 | }) 52 | 53 | let consulta = personas.some(persona => persona.sueldo >20000) 54 | 55 | if(consulta) { 56 | console.log(personas.filter(personas => personas.sueldo > 20000)) 57 | } else { 58 | nsole.log("No existen personas cuyo sueldo sea mayor a 15000") 59 | } 60 | const sueldosId = personas.map(persona => persona = {sueldo: persona.sueldo, id: persona.id}) 61 | 62 | 63 | const sueldos = personas.map(persona => persona.sueldo) 64 | /* 65 | let acumulador = 0 66 | sueldos.forEach(sueldo => { 67 | acumulador += sueldo 68 | }) 69 | console.log(sueldos) 70 | 71 | const sueldosAcum = sueldos.slice(0,3) 72 | 73 | let acumulador = sueldosAcum.reduce((prev, act) => prev + act, 0) 74 | 75 | console.log(acumulador) 76 | 77 | const caracteres = ['h', 'o', 'l', 'a'] 78 | 79 | console.log(caracteres.reduce((prev, act) => prev + act, ''))*/ 80 | 81 | const sueldos = personas.map(persona => persona.sueldo) 82 | 83 | console.log(sueldos) 84 | console.log(sueldos.sort((sueldo1,sueldo2) => sueldo1-sueldo2)) 85 | console.log(sueldos.sort((sueldo1,sueldo2) => sueldo2-sueldo1)) 86 | -------------------------------------------------------------------------------- /clase-5/script.js: -------------------------------------------------------------------------------- 1 | /*let nombrePersona1 = "Francisco" 2 | let apellidoPersona1 = "Pugh" 3 | let edadPersona1 = 30 4 | let pesoPersona1 = 70 5 | let sueldoPersona1 = 12000 6 | 7 | const persona1 = { 8 | nombre: "Francisco", 9 | apellido: "Pugh", 10 | edad: 30, 11 | peso: 70, 12 | sueldo: 12000 13 | } 14 | 15 | //Congelo el objeto 16 | Object.freeze(persona1) 17 | 18 | persona1.estadoCivil = "Soltero" 19 | 20 | console.log(persona1.estadoCivil) 21 | //persona1 = null Esto no se deberia hacer 22 | 23 | persona1.sueldo = 20000 24 | console.log(persona1) 25 | console.log(persona1.sueldo) 26 | console.log(persona1["sueldo"])*/ 27 | /* 28 | let nombre = prompt("Ingrese un nombre") 29 | let apellido = prompt("Ingrese un apellido") 30 | let edad = parseInt(prompt("Ingrese una edad")) 31 | let sueldo = parseFloat(prompt("Ingrese un sueldo")) 32 | 33 | const persona1 = new Persona(nombre, apellido, edad, sueldo) 34 | 35 | 36 | function Persona(nombreParam = "", apellidoParam = "", edadParam = 1, sueldoParam = 0) { 37 | this.nombre = nombreParam; // nombre: "Francisco" 38 | this.apellido = apellidoParam; 39 | this.edad = edadParam; 40 | this.sueldo = sueldoParam; 41 | this.saludar = () => console.log(`Hola, me llamo ${this.nombre} y te estoy saludando!`) 42 | this.aumentarSueldo = (aumento) => this.sueldo += aumento //this.sueldo = this.sueldo + aumento 43 | } 44 | 45 | const persona1 = new Persona("Francisco", "Pugh", 43, 23000) 46 | const persona2 = new Persona("Ana", "Anita", 32, 25000) 47 | 48 | persona1.saludar() 49 | 50 | Object.freeze(persona2) 51 | 52 | persona2.aumentarSueldo(10000) 53 | persona2.saludar() 54 | 55 | Object.freeze(persona1) 56 | 57 | console.log(persona2) 58 | //console.log(persona1)*/ 59 | 60 | class Producto { 61 | constructor(nombre, marca, precio, stock) { 62 | this.nombre = nombre 63 | this.marca = marca 64 | this.precio = precio 65 | this.stock = stock 66 | } 67 | 68 | aumentarPrecio(porcentajeAumento) { 69 | this.precio *= porcentajeAumento 70 | } 71 | 72 | aplicarDescuento(porcentajeDescuento) { //0.3 73 | this.precio -= (this.precio * porcentajeDescuento) // 100 = 100 - (100 * 0.3 (30)) 74 | console.log(this.precio) 75 | } 76 | 77 | aumentarStock(nuevoStock) { 78 | this.stock += nuevoStock 79 | } 80 | 81 | disminuirStock(nuevoStock) { 82 | this.stock -= nuevoStock 83 | } 84 | 85 | mostrarProducto() { 86 | console.log(`${this.nombre} - ${this.marca}`) 87 | } 88 | } 89 | //Relacion "es un" 90 | 91 | const producto1 = new Producto("Yerba Mate", "La yerbita", 400, 20) 92 | const producto2 = new Producto("Cafe", "Le cafe", 500, 10) 93 | const producto3 = new Producto("Fideos", "Fideito", 100, 30) 94 | 95 | Object.freeze(producto1) 96 | producto1.mostrarProducto() 97 | producto1.aplicarDescuento(0.25) 98 | producto1.aumentarPrecio(1.25) 99 | producto1.aumentarStock(10) 100 | producto1.disminuirStock(5) 101 | console.log(producto1) 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /clase-2/script.js: -------------------------------------------------------------------------------- 1 | //Desayuno es igual a Cafe 2 | /*let desayuno = prompt("Ingrese su desayuno").toLowerCase() //CAFE = cafe 3 | 4 | if(desayuno == "cafe") { //Desayuno es igual a Cafe? 5 | console.log("Desayuno cafe con leche"); 6 | } else if(desayuno == "te") { 7 | console.log("Desayuno te con leche"); 8 | } else if(desayuno == "chocolatada") { 9 | console.log("Desayuno chocolatada"); 10 | } else { 11 | console.log("Desayuno mate mirando una pared") 12 | }*/ 13 | 14 | //parseFloat() paso string a numero flotanto, o sea con coma 15 | //parseInt() paso string a numeros enteros, o sea elimino decimales 16 | 17 | 18 | /* 19 | 5 == "5" //Mismo valor 20 | "5" + "5" = "55" 21 | 5 + 5 = 10 22 | "5" + 5 = "55" 23 | 24 | == "Se utiliza para valor" 25 | === "Se utiliza para valor y tipo" 26 | 27 | 28 | 29 | 30 | if(5 === "5") { 31 | console.log("V") 32 | } else { 33 | console.log("F") 34 | } 35 | 36 | //NaN cuando no me ingresan un numero 37 | let numero = parseFloat(prompt("Ingrese un numero")) 38 | 39 | console.log(numero) 40 | 41 | if(isNaN(numero)) { //Verdadero si numero es NaN 42 | alert("Numero no valido") 43 | } else { 44 | console.log(numero + 5) 45 | } 46 | 47 | let numero1 = 3 48 | let numero2 = 2 49 | 50 | 51 | if(numero1 === 5 || numero2 === 10) { 52 | console.log("V") 53 | } else { 54 | console.log("F") 55 | } 56 | 57 | /* 58 | numero1 || numero2 59 | V V V 60 | V V F 61 | F V V 62 | F F F 63 | 64 | 65 | 66 | if(numero1 === 5 && numero2 === 10) { 67 | console.log("V") 68 | } else { 69 | console.log("F") 70 | } 71 | 72 | 73 | numero1 && numero2 74 | V V V 75 | V F F 76 | F F V 77 | F F F 78 | 79 | 80 | 1 a 5 "Desaprobado" 81 | 6 o 7 "Aprobado Bien" 82 | 8 o 9 "Aprobado Muy bien" 83 | 10 "Aprobado Excelente" 84 | */ 85 | 86 | let nota = parseInt(prompt("Ingrese una nota")) 87 | 88 | let desaprobado = (nota >= 1 && nota <= 5) 89 | let bien = (nota === 6 || nota === 7) 90 | let muyBien = (nota === 8 || nota === 9) 91 | let excelente = (nota === 10) 92 | 93 | if(desaprobado) { 94 | alert("Alumno/a desaprobado") 95 | } else if(bien) { //nota >= 6 && nota <= 7 96 | alert("Alumno/a aprobado con nota de Bien") 97 | } else if(muyBien) { 98 | alert("Alumno/a aprobado con nota de Muy Bien") 99 | } else if(excelente) { 100 | alert("Alumno/a aprobado con nota de Excelente") 101 | } else { 102 | alert("Nota no valida") 103 | } 104 | 105 | if(nota >= 1 && nota <= 10) { 106 | if(nota <= 5) { 107 | alert("Alumno/a desaprobado") 108 | } else if(nota <= 7) { 109 | alert("Alumno/a aprobado con nota de Bien") 110 | } else if(nota <= 9) { 111 | alert("Alumno/a aprobado con nota de Muy Bien") 112 | } else { 113 | alert("Alumno/a aprobado con nota de Excelente") 114 | } 115 | } else { 116 | alert("Nota no valida") 117 | } -------------------------------------------------------------------------------- /clase-7/After/script.js: -------------------------------------------------------------------------------- 1 | class Producto { 2 | constructor(nombre = "Predeterminado", marca = "Predeterminado", precio = 1, stock = 1) { 3 | this.nombre = nombre 4 | this.marca = marca 5 | this.precio = precio 6 | this.stock = stock 7 | } 8 | } 9 | 10 | function buscarProducto(productos) { 11 | let nombreProducto = prompt("Ingrese un nombre de producto") 12 | 13 | let productoBuscado = productos.find(producto => producto.nombre == nombreProducto) 14 | 15 | if(productoBuscado == undefined) { 16 | console.log("Producto no encontrado") 17 | } else { 18 | console.log(productoBuscado) 19 | } 20 | } 21 | 22 | function buscarProductos(productos) { 23 | let precio = parseFloat(prompt("Ingrese un precio")) 24 | let productosBuscados = productos.filter(producto => producto.precio >= precio) 25 | 26 | if(productosBuscados.length == 0) { 27 | console.log("No hay productos con dichas caracteristicas") 28 | } else { 29 | console.log(productosBuscados) 30 | } 31 | } 32 | 33 | function ordenarProductos(productos) { 34 | 35 | let metodoOrdenamiento = parseInt(prompt("Ingrese 1 para ordenar de menor a mayor, 2 para ordenar de mayor a menor")) 36 | 37 | if(metodoOrdenamiento === 1) { 38 | console.log(productos.sort((a,b) => a.precio-b.precio)) 39 | } else if(metodoOrdenamiento === 2) { 40 | console.log(productos.sort((a,b) => b.precio-a.precio)) 41 | } 42 | 43 | } 44 | /* 45 | const producto1 = new Producto("Cafe", "Cafecito", 100, 20) 46 | const producto2 = new Producto("Te", "Tecito", 120, 25) 47 | const producto3 = new Producto("Arroz", "Arrocin", 200, 10) 48 | const producto4 = new Producto("Fideos", "Fideito", 80, 30) 49 | 50 | const productos = [producto1, producto2, producto3, producto4]*/ 51 | const productos = [] 52 | 53 | const mts = 1000 54 | 55 | let precio, stock, nombre, marca, continua, respuesta 56 | //Solicitud de datos al usuario 57 | do { 58 | 59 | do { 60 | nombre = prompt("Ingrese un nombre de producto").toLowerCase() 61 | marca = prompt("Ingrese marca de producto").toLowerCase() 62 | 63 | } while((nombre.length == 0 || marca.length == 0)) 64 | 65 | //Validacion precio y stock validos 66 | do { 67 | precio = parseFloat(prompt("Ingrese un precio de producto")) 68 | stock = parseInt(prompt("Ingrese stock de producto")) 69 | 70 | }while((isNaN(precio) || isNaN(stock)) || (precio <= 0 || stock <= 0)) 71 | 72 | const producto = new Producto(nombre, marca, precio, stock) 73 | productos.push(producto) 74 | continua = prompt("¿Desea ingresar mas productos?").toLowerCase() 75 | } while(continua != "no") 76 | 77 | 78 | do { 79 | respuesta = parseInt(prompt(`Ingrese numero para: 80 | 1- Buscar un producto 81 | 2- Buscar productos por precio 82 | 3- Ordenar de menor a mayor 83 | `)) 84 | } while(respuesta <1 || respuesta >3) 85 | 86 | 87 | switch(respuesta) { 88 | case 1: 89 | buscarProducto(productos) 90 | break 91 | case 2: 92 | buscarProductos(productos) 93 | break 94 | case 3: 95 | ordenarProductos(productos) 96 | break 97 | default: 98 | alert("Opcion no valida") 99 | break 100 | } --------------------------------------------------------------------------------