├── .gitignore ├── 01. repite ├── descripcion.md └── solucion.js ├── 02. saluda ├── descripcion.md └── solucion.js ├── 03. suma ├── descripcion.md └── solucion.js ├── 04. mi edad ├── descripcion.md └── solucion.js ├── 05. indice de masa corporal ├── descripcion.md └── solucion.js ├── 06. mayor que diez ├── descripcion.md └── solucion.js ├── 07. adivina el numero ├── descripcion.md └── solucion.js ├── 08. es multiplo de 5 ├── descripcion.md └── solucion.js ├── 09. mayor menor o igual ├── descripcion.md └── solucion.js ├── 10. indice de masa corporal II ├── descripcion.md └── solucion.js ├── 11. bing bong ├── descripcion.md └── solucion.js ├── 12. generaciones ├── descripcion.md └── solucion.js ├── 13. repite 10 veces ├── descripcion.md └── solucion.js ├── 14. repite varias veces ├── descripcion.md └── solucion.js ├── 15. 1 hasta n ├── descripcion.md └── solucion.js ├── 16. rango de numeros ├── descripcion.md └── solucion.js ├── 17. hasta salir ├── descripcion.md └── solucion.js ├── 18. adivina el numero varios intentos ├── descripcion.md └── solucion.js ├── 19. rango de numeros II ├── descripcion.md └── solucion.js ├── 20. numeros pares ├── descripcion.md └── solucion.js ├── 21. mi primera funcion ├── descripcion.md └── solucion.js ├── 22. funcion saluda ├── descripcion.md └── solucion.js ├── 23. funcion es multiplo ├── descripcion.md └── solucion.js ├── 24. funcion indice de masa corporal ├── descripcion.md └── solucion.js ├── 25. arregla la funcion ├── descripcion.md └── solucion.js ├── 26. funcion escalera ├── descripcion.md └── solucion.js ├── 27. imprime el arreglo ├── descripcion.md └── solucion.js ├── 28. obtener el tercer elemento ├── descripcion.md └── solucion.js ├── 29. reemplaza el elemento ├── descripcion.md └── solucion.js ├── 30. crea el arreglo ├── descripcion.md └── solucion.js ├── 31. crea el arreglo (rango) ├── descripcion.md └── solucion.js ├── 32. imprime la matriz ├── descripcion.md └── solucion.js ├── 33. mayores a diez ├── descripcion.md └── solucion.js ├── 34. cuantos caracteres a hay ├── descripcion.md └── solucion.js ├── 35. cuantos unos hay ├── descripcion.md └── solucion.js ├── 36. arreglo a cadena ├── descripcion.md └── solucion.js ├── 37. separar palabras ├── descripcion.md └── solucion.js ├── 38. la abuela sorda ├── descripcion.md └── solucion.js ├── 39. generador de contrasenas ├── descripcion.md └── solucion.js ├── 40. capitalizar ├── descripcion.md └── solucion.js ├── 41. crea el objeto ├── descripcion.md └── solucion.js ├── 42. saluda (objetos) ├── descripcion.md └── solucion.js ├── 43. agregar peso ├── descripcion.md └── solucion.js ├── 44. obtener el valor del objeto ├── descripcion.md └── solucion.js ├── 45. cambiar el peso ├── descripcion.md └── solucion.js ├── 46. elimina el peso ├── descripcion.md └── solucion.js ├── 47. existe la llave ├── descripcion.md └── solucion.js ├── 48. buscando el producto ├── descripcion.md └── solucion.js ├── 49. descifra la frase ├── descripcion.md └── solucion.js ├── 50. imprime el arreglo (foreach) ├── descripcion.md └── solucion.js ├── 51. numeros pares (filter) ├── descripcion.md └── solucion.js ├── 52. posiciones pares (filter) ├── descripcion.md └── solucion.js ├── 53. multiplica cada numero ├── descripcion.md └── solucion.js ├── 54. metodos ├── descripcion.md └── solucion.js ├── 55. lista de nombres ├── descripcion.md └── solucion.js ├── 56. producto (funcion constructora) ├── descripcion.md └── solucion.js ├── 57. persona (funcion constructora) ├── descripcion.md └── solucion.js ├── 58. auto (funcion constructora) ├── descripcion.md └── solucion.js ├── 59. promedio ├── descripcion.md └── solucion.js └── 60. palindrome ├── descripcion.md └── solucion.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /01. repite/descripcion.md: -------------------------------------------------------------------------------- 1 | # Repite 2 | 3 | Escribe un programa que le pida al usuario ingresar una frase y la imprima en la consola. 4 | 5 | Recuerda que para pedirle al usuario que escriba una frase debes utilizar el método prompt() y para escribir en la consola debes utilizar el método console.log(). 6 | -------------------------------------------------------------------------------- /01. repite/solucion.js: -------------------------------------------------------------------------------- 1 | var phrase = prompt('Ingresa una frase'); 2 | 3 | console.log(phrase); 4 | -------------------------------------------------------------------------------- /02. saluda/descripcion.md: -------------------------------------------------------------------------------- 1 | # Saluda 2 | 3 | Escribe un programa que le pregunte al usuario su nombre e imprima "Hola " seguido del nombre y un signo de exclamación. 4 | 5 | Por ejemplo, si el usuario ingresa "Pedro" el programa debe imprimir en la consola "Hola Pedro!". 6 | -------------------------------------------------------------------------------- /02. saluda/solucion.js: -------------------------------------------------------------------------------- 1 | var name = prompt('Ingresa tu nombre'); 2 | 3 | console.log('Hola ' + name + '!'); 4 | -------------------------------------------------------------------------------- /03. suma/descripcion.md: -------------------------------------------------------------------------------- 1 | # Suma 2 | 3 | Escribe un programa que le pida al usuario ingresar un número, luego le pide un segundo número, e imprima en la consola la suma de los dos números que ingresó el usuario. 4 | -------------------------------------------------------------------------------- /03. suma/solucion.js: -------------------------------------------------------------------------------- 1 | var num1 = prompt('Ingresa un número: '); 2 | var num2 = prompt('Ingresa otro número: '); 3 | var sum = parseInt(num1) + parseInt(num2); 4 | 5 | console.log(sum); 6 | -------------------------------------------------------------------------------- /04. mi edad/descripcion.md: -------------------------------------------------------------------------------- 1 | # Mi Edad 2 | 3 | Escribe un programa que le pida al usuario su año de nacimiento e imprima su edad actual en la consola con la frase "Tienes X años". Por ejemplo, asumiendo que el año actual es 2019 y el usuario ingresa 1999, el programa debe imprimir en la consola: 4 | 5 | `Tienes 29 años` 6 | -------------------------------------------------------------------------------- /04. mi edad/solucion.js: -------------------------------------------------------------------------------- 1 | var year = prompt('En que año naciste'); 2 | 3 | console.log('Tienes ' + (2019 - parseInt(year)) + ' años'); 4 | -------------------------------------------------------------------------------- /05. indice de masa corporal/descripcion.md: -------------------------------------------------------------------------------- 1 | # Indice de Masa Corporal 2 | 3 | El índice de masa corporal (IMC), o BMI por sus siglas en inglés, es un valor que determina la cantidad de grasa de una persona. 4 | 5 | El BMI se calcula con la siguiente formula: 6 | 7 | `peso / altura^2` 8 | 9 | Escribe un programa que le pida al usuario su peso y su altura para calcular su BMI e imprima la frase "Tu BMI es X". 10 | 11 | Por ejemplo, si el usuario ingresa 65 de peso y 1.8 de altura el programa debe imprimir en la consola la frase "Tu BMI es 20.061728395061728". 12 | -------------------------------------------------------------------------------- /05. indice de masa corporal/solucion.js: -------------------------------------------------------------------------------- 1 | var weight = prompt('Escribe tu peso'); 2 | var height = prompt('Escribe tu estatura'); 3 | 4 | var bmi = parseFloat(weight) / Math.pow(parseFloat(height), 2); 5 | 6 | console.log('tu BMI es ' + bmi); 7 | -------------------------------------------------------------------------------- /06. mayor que diez/descripcion.md: -------------------------------------------------------------------------------- 1 | # Mayor que Diez 2 | 3 | Escribe un programa que le pida un número al usuario e imprima en la consola si el número es mayor o menor/igual a 10. 4 | 5 | Si es mayor debe imprimir "El número es mayor a 10". 6 | 7 | Si es menor debe imprimir "El número es menor o igual a 10". 8 | -------------------------------------------------------------------------------- /06. mayor que diez/solucion.js: -------------------------------------------------------------------------------- 1 | var num = prompt('Ingresa un número'); 2 | 3 | if(num > 10) { 4 | console.log('El número es mayor a 10'); 5 | } else { 6 | console.log('El número es menor o igual a 10') 7 | } 8 | -------------------------------------------------------------------------------- /07. adivina el numero/descripcion.md: -------------------------------------------------------------------------------- 1 | # Adivina el Número 2 | 3 | Escribe un programa que piense un número de forma aleatoria del 1 al 10 y le pida al usuario que lo trate de adivinar. Si el número es correcto debe imprimir en la consola "Felicitaciones, ese era!", de lo contrario debe imprimir "Lo siento, intenta nuevamente!" 4 | -------------------------------------------------------------------------------- /07. adivina el numero/solucion.js: -------------------------------------------------------------------------------- 1 | var number = Math.ceil(Math.random()*10); 2 | var guess = prompt('Escribe un número'); 3 | 4 | if (number === guess) { 5 | console.log('Felicitaciones, ese era!'); 6 | } else { 7 | console.log('Lo siento, intenta nuevamente!'); 8 | } 9 | -------------------------------------------------------------------------------- /08. es multiplo de 5/descripcion.md: -------------------------------------------------------------------------------- 1 | # Es Múltiplo de 5 2 | 3 | Un múltiplo de 5 es aquel que dividio por 5 da por resultado un número entero (sin residuo). Por ejemplo 10, 15, 20, etc. son múltiplos de 5. 11 no es múltiplo de 5 porque quedaría un residuo de 1. 4 | 5 | Escribe un programa que le pida al usuario un número e imprima si es un múltiplo de 5 o no. 6 | 7 | Si es múltiplo debe imprimir "Si, el número x es múltiplo 5", de lo contrario debe imprimir "No, el número x no es múltiplo de 5". 8 | -------------------------------------------------------------------------------- /08. es multiplo de 5/solucion.js: -------------------------------------------------------------------------------- 1 | var num = prompt('Ingresa un número'); 2 | 3 | if(num % 5 === 0) { 4 | console.log('Si, el número ' + num + ' es múltiplo de 5'); 5 | } else { 6 | console.log('No, el número ' + num + ' no es múltiplo de 5') 7 | } 8 | -------------------------------------------------------------------------------- /09. mayor menor o igual/descripcion.md: -------------------------------------------------------------------------------- 1 | # Mayor, Menor o Igual 2 | 3 | Escribe un programa que le pida un número al usuario e imprima en la consola si el número si es mayor, menor o igual que 10. 4 | 5 | Si el número es menor a 10 debe imprimir "El número es menor que 10". 6 | 7 | Si el número es mayor a 10 debe imprimir "El número es mayor que 10". 8 | 9 | Si el número es igual a 10 debe imprimir "El número es igual a 10". 10 | -------------------------------------------------------------------------------- /09. mayor menor o igual/solucion.js: -------------------------------------------------------------------------------- 1 | var num = prompt('Ingresa un número'); 2 | 3 | if(num < 10) { 4 | console.log('El número es menor que 10'); 5 | } else if(num > 10) { 6 | console.log('El número es mayor que 10'); 7 | } else { 8 | console.log('El número es igual a 10'); 9 | } 10 | -------------------------------------------------------------------------------- /10. indice de masa corporal II/descripcion.md: -------------------------------------------------------------------------------- 1 | # Indice de Masa Corporal II 2 | 3 | El índice de masa corporal (IMC), o BMI por sus siglas en inglés, es un valor que determina la cantidad de grasa de una persona. 4 | 5 | El BMI se calcula con la siguiente formula: 6 | 7 | `peso / altura^2` 8 | 9 | Escribe un programa que le pida al usuario su peso y altura. El programa deberá calcular el BMI e imprimir: 10 | 11 | * "Bajo de peso" si el BMI < 18.5 12 | * "Normal" si está entre 18.5 y 24.9 13 | * "Sobrepeso" si está entre 25 y 29.9 14 | * "Obeso" si es igual o mayor a 30 15 | -------------------------------------------------------------------------------- /10. indice de masa corporal II/solucion.js: -------------------------------------------------------------------------------- 1 | var weight = prompt('Ingresa tu peso'); 2 | var height = prompt('Ingresa tu altura'); 3 | 4 | var bmi = parseFloat(weight) / parseFloat(height) ** 2; 5 | 6 | if(bmi < 18.5) { 7 | console.log('Bajo de peso'); 8 | } else if(bmi >= 18.5 && bmi < 24.9) { 9 | console.log('Normal'); 10 | } else if(bmi >= 24.9 && bmi < 29.9) { 11 | console.log('Sobrepeso'); 12 | } else { 13 | console.log('Obeso'); 14 | } 15 | -------------------------------------------------------------------------------- /11. bing bong/descripcion.md: -------------------------------------------------------------------------------- 1 | # Bing Bong 2 | 3 | Escribe un programa que le pida al usuario ingresar un número. 4 | 5 | * Si el número es múltiplo de 3 debe imprimir en la consola "bing". 6 | * Si el número es múltiplo de 5 debe imprimir en la consola "bong". 7 | * Si el número es múltiplo tanto de 3 como de 5 debe imprimir en la consola "bingbong". 8 | * Si el no cumple ninguna de las condiciones anteriores debe imprimir el mismo número. 9 | -------------------------------------------------------------------------------- /11. bing bong/solucion.js: -------------------------------------------------------------------------------- 1 | var num = prompt('Ingresa un número'); 2 | 3 | if(num % 3 === 0 && num % 5 === 0) { 4 | console.log('bingbong'); 5 | } else if(num % 3 === 0) { 6 | console.log('bing'); 7 | } else if(num % 5 === 0) { 8 | console.log('bong'); 9 | } else { 10 | console.log(num) 11 | } 12 | -------------------------------------------------------------------------------- /12. generaciones /descripcion.md: -------------------------------------------------------------------------------- 1 | # Generaciones 2 | 3 | Escribe un programa para la consola que le pida al usuario su año de nacimiento e imprima en la consola la generación a la que pertenece: 4 | 5 | * "Gran generación" si el año es menor a 1945 6 | * "Baby boomer" si es entre 1945 y 1964 7 | * "X" si es entre 1965 y 1981 8 | * "Millenial" si es entre 1982 y 1994 9 | * "Z" si es igual o mayor a 1995 10 | 11 | Por ejemplo, si el usuario ingresa el año 1920 el programa de imprimir "Gran generación". 12 | -------------------------------------------------------------------------------- /12. generaciones /solucion.js: -------------------------------------------------------------------------------- 1 | var year = prompt('En que año naciste'); 2 | 3 | if(year < 1945) { 4 | console.log('Gran generación') 5 | } else if(year >= 1945 && year < 1965) { 6 | console.log('Baby boomer'); 7 | } else if(year >= 1965 && year < 1982) { 8 | console.log('X'); 9 | } else if(year >= 1982 && year < 1994) { 10 | console.log('Millenial'); 11 | } else { 12 | console.log('Z'); 13 | } 14 | -------------------------------------------------------------------------------- /13. repite 10 veces/descripcion.md: -------------------------------------------------------------------------------- 1 | # Repite 10 Veces 2 | 3 | Escribe un programa que le pida al usuario ingresar una frase. El programa debe imprimir la frase en la consola 10 veces. 4 | 5 | **Nota**: utiliza un ciclo para imprimir la frase las 10 veces. 6 | -------------------------------------------------------------------------------- /13. repite 10 veces/solucion.js: -------------------------------------------------------------------------------- 1 | var phrase = prompt('Ingresa una frase'); 2 | 3 | for(var i = 0; i < 10; i++) { 4 | console.log(phrase); 5 | } 6 | -------------------------------------------------------------------------------- /14. repite varias veces/descripcion.md: -------------------------------------------------------------------------------- 1 | # Repite varias Veces 2 | 3 | Escribe un programa que le pida al usuario una frase y un número. El programa debe imprimir la frase en la consola el número de veces que ingresó el usuario. 4 | 5 | Por ejemplo, si el usuario ingresó la frase "Hola Mundo" y el número 5, el programa debe imprimir "Hola Mundo" 5 veces: 6 | 7 | ```markdown 8 | Hola Mundo 9 | Hola Mundo 10 | Hola Mundo 11 | Hola Mundo 12 | Hola Mundo 13 | ``` 14 | -------------------------------------------------------------------------------- /14. repite varias veces/solucion.js: -------------------------------------------------------------------------------- 1 | var phrase = prompt('Ingresa una frase'); 2 | var num = prompt('Ingresa el número de veces que se correra el código'); 3 | 4 | for(var i = 0; i < parseInt(num); i++) { 5 | console.log(phrase); 6 | } 7 | -------------------------------------------------------------------------------- /15. 1 hasta n/descripcion.md: -------------------------------------------------------------------------------- 1 | # 1 hasta N 2 | 3 | Escribe un programa para la consola que le pida al usuario un número e imprima los números desde 1 hasta el número. 4 | 5 | Por ejemplo, si el usuario ingresa el número 5, el programa de be imprimir: 6 | 7 | ```markdown 8 | 1 9 | 2 10 | 3 11 | 4 12 | 5 13 | ``` 14 | -------------------------------------------------------------------------------- /15. 1 hasta n/solucion.js: -------------------------------------------------------------------------------- 1 | var num = prompt('Escribe un número'); 2 | 3 | for(var i = 1; i <= num; i++) { 4 | console.log(i); 5 | } 6 | -------------------------------------------------------------------------------- /16. rango de numeros/descripcion.md: -------------------------------------------------------------------------------- 1 | # Rango de Números 2 | 3 | Escribe un programa para la consola que le pida al usuario dos números e imprima en la consola los números en ese rango. Por ejemplo, si el usuario ingresa 5 como primer número y 10 como segundo número, el programa debe imprimir: 4 | 5 | ```markdown 6 | 5 7 | 6 8 | 7 9 | 8 10 | 9 11 | 10 12 | ``` 13 | 14 | Nota 1: Puedes asumir que el primer número siempre va a ser menor o igual que el segundo. 15 | 16 | Nota 2: Fíjate que se imprimen también los números en los límites, en el ejemplo el 5 y el 10. 17 | -------------------------------------------------------------------------------- /16. rango de numeros/solucion.js: -------------------------------------------------------------------------------- 1 | var start = prompt('Ingresa el número de incio'); 2 | var end = prompt('Ingresa el número de fin'); 3 | 4 | for(let i = start; i <= end; i++) { 5 | console.log(i); 6 | } 7 | -------------------------------------------------------------------------------- /17. hasta salir/descripcion.md: -------------------------------------------------------------------------------- 1 | # Hasta Salir 2 | 3 | Escribe un programa que: 4 | 5 | 1. Le pida al usuario un string (una cadena de texto). 6 | 2. Si el string es "salir" (todo en minúsculas) el programa debe imprimir en la consola "Hasta pronto!" y terminar. 7 | 3. De lo contrario imprime en la consola lo que el usuario ingresó y repite el proceso desde el paso 1. 8 | -------------------------------------------------------------------------------- /17. hasta salir/solucion.js: -------------------------------------------------------------------------------- 1 | var string = prompt('Ingresa un texto'); 2 | 3 | while(string !== 'salir') { 4 | console.log(string); 5 | string = prompt('Ingresa un texto'); 6 | } 7 | 8 | console.log('Hasta pronto!') 9 | -------------------------------------------------------------------------------- /18. adivina el numero varios intentos/descripcion.md: -------------------------------------------------------------------------------- 1 | # Adivina el Número (Varios Intentos) 2 | 3 | Escribe un programa que piense un número de forma aleatoria y le pida al usuario que lo trate de adivinar (como en uno de los ejercicios anteriores). La diferencia es que esta vez el usuario puede intentar indefinidamente hasta que encuentre el número. 4 | -------------------------------------------------------------------------------- /18. adivina el numero varios intentos/solucion.js: -------------------------------------------------------------------------------- 1 | var random = Math.ceil(Math.random() * 10); 2 | var num = prompt('Adivina el número'); 3 | 4 | while(random !== num) { 5 | num = prompt('Adivina el número') 6 | } 7 | -------------------------------------------------------------------------------- /19. rango de numeros II/descripcion.md: -------------------------------------------------------------------------------- 1 | # Rango de Números II 2 | 3 | Escribe un programa para la consola que le pida al usuario dos números. 4 | 5 | Si el primer número es menor que el segundo imprime los números en el rango de forma ascendente. Por ejemplo, si el usuario ingresa 5 como primer número y 10 como segundo número, el programa debe imprimir: 6 | 7 | ```markdown 8 | 5 9 | 6 10 | 7 11 | 8 12 | 9 13 | 10 14 | ``` 15 | 16 | Si el primer número es mayor que el segundo imprime los números en el rango de forma descendente. Por ejemplo, si el usuario ingresa 10 como primer número y 5 como segundo número, el programa debe imprimir: 17 | 18 | ```markdown 19 | 10 20 | 9 21 | 8 22 | 7 23 | 6 24 | 5 25 | ``` 26 | 27 | Nota: Fíjate que se imprimen también los números en los límites, en el ejemplo el 10 y el 5. 28 | -------------------------------------------------------------------------------- /19. rango de numeros II/solucion.js: -------------------------------------------------------------------------------- 1 | var start = prompt('Escribe un número'); 2 | var end = prompt('Escribe otro número'); 3 | 4 | if(start < end) { 5 | for(let i = start; i <= end; i++) { 6 | console.log(i); 7 | } 8 | } else { 9 | for(let i = start; i >= end; i--) { 10 | console.log(i); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /20. numeros pares/descripcion.md: -------------------------------------------------------------------------------- 1 | # Números Pares 2 | 3 | Escribe un programa que imprima los números pares del 0 al 100: 4 | 5 | ```markdown 6 | 0 7 | 2 8 | 4 9 | 6 10 | ... 11 | 96 12 | 98 13 | 100 14 | ``` 15 | 16 | Nota 1: cada número debe ir en una nueva línea. 17 | Nota 2: utiliza un ciclo para solucionar este ejercicio 18 | -------------------------------------------------------------------------------- /20. numeros pares/solucion.js: -------------------------------------------------------------------------------- 1 | for(let i = 0; i <= 100; i++) { 2 | if(i % 2 === 0) { 3 | console.log(i); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /21. mi primera funcion/descripcion.md: -------------------------------------------------------------------------------- 1 | # Mi Primera Función 2 | 3 | Escribe una función llamada suma que reciba dos números y retorne la suma de los dos números. 4 | 5 | Algunos ejemplos de cómo invocaríamos la función con los valores que debería retornar: 6 | 7 | ```javascript 8 | suma(1, 2) // 3 9 | suma(0, 0) // 0 10 | suma(245, 923) // 1168 11 | ``` 12 | -------------------------------------------------------------------------------- /21. mi primera funcion/solucion.js: -------------------------------------------------------------------------------- 1 | function suma(num1, num2) { 2 | return num1 + num2; 3 | } 4 | -------------------------------------------------------------------------------- /22. funcion saluda/descripcion.md: -------------------------------------------------------------------------------- 1 | # Función Saluda 2 | 3 | Escribe una función llamada hola que reciba un argumento (una cadena de texto) y retorne "Hola " seguido del argumento y un signo de exclamación. 4 | 5 | Algunos ejemplos de cómo invocaríamos esta función y lo que debería retornar: 6 | 7 | ```javascript 8 | hola("Pedro"); // retorna: "Hola Pedro!" 9 | hola("Juan"); // retorna: "Hola Juan!" 10 | hola(""); // retorna: "Hola !" 11 | ``` 12 | -------------------------------------------------------------------------------- /22. funcion saluda/solucion.js: -------------------------------------------------------------------------------- 1 | function hola(name) { 2 | return 'Hola ' + name + '!'; 3 | } 4 | -------------------------------------------------------------------------------- /23. funcion es multiplo/descripcion.md: -------------------------------------------------------------------------------- 1 | # Función es Multiplo 2 | 3 | Escribe una función llamada esMultiplo que reciba dos números y retorne verdadero si el primer argumento es múltiplo del segundo. 4 | 5 | Ejemplos de cómo vamos a invocar la función: 6 | 7 | ```javascript 8 | esMultiplo(15, 3); // true 9 | esMultiplo(8, 5); // false 10 | esMultiplo(21, 7); // true 11 | ``` 12 | -------------------------------------------------------------------------------- /23. funcion es multiplo/solucion.js: -------------------------------------------------------------------------------- 1 | function esMultiplo(num1, num2) { 2 | return num1 % num2 === 0; 3 | } 4 | -------------------------------------------------------------------------------- /24. funcion indice de masa corporal/descripcion.md: -------------------------------------------------------------------------------- 1 | # Función Índice de Masa Corporal 2 | 3 | El índice de masa corporal (IMC), o BMI por sus siglas en inglés, es un valor que determina la cantidad de grasa de una persona. 4 | 5 | El BMI se calcula con la siguiente formula: 6 | 7 | `peso / altura^2` 8 | 9 | Escribe una función llamada bmi que reciba dos argumentos: peso y altura. Utiliza la fórmula para retornar el BMI correspondiente. 10 | 11 | ```javascript 12 | bmi(65, 1.8); // retorna: 20.061728395061728 13 | bmi(72, 1.6) // retorna: 28.124999999999993 14 | bmi(52, 1.75) // retorna: 16.979591836734695 15 | ``` 16 | -------------------------------------------------------------------------------- /24. funcion indice de masa corporal/solucion.js: -------------------------------------------------------------------------------- 1 | function bmi(weight, height) { 2 | return weight / Math.pow(height, 2); 3 | } 4 | -------------------------------------------------------------------------------- /25. arregla la funcion/descripcion.md: -------------------------------------------------------------------------------- 1 | # Arregla la Función 2 | 3 | La función calcularColor recibe un número como argumento y retorna un string de acuerdo al número: 4 | 5 | * Si el número es 1 retorna "El color es negro". 6 | * Si el número es 2 retorna "El color es blanco". 7 | * Si el número es 3 retorna "El color es azul". 8 | * De lo contrario retorna "El color es verde". 9 | 10 | El problema es que la función tiene algunos errores y no está funcionando. Tu misión es corregirla para que funcione correctamente según lo anterior. 11 | 12 | ```javascript 13 | function calcuarColor() { 14 | if (num === 1) { 15 | let color = "black"; 16 | } else (num = 2) { 17 | let color = "blanco": 18 | } else if (num === 3) { 19 | let color = "rojo"; 20 | } else { 21 | let color = "verde"; 22 | } 23 | 24 | return "El color es " + color; 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /25. arregla la funcion/solucion.js: -------------------------------------------------------------------------------- 1 | function calcularColor(num) { 2 | let color; 3 | if (num === 1) { 4 | color = "negro"; 5 | } else if (num === 2) { 6 | color = "blanco"; 7 | } else if (num === 3) { 8 | color = "azul"; 9 | } else { 10 | color = "verde"; 11 | } 12 | 13 | return "El color es " + color; 14 | } 15 | -------------------------------------------------------------------------------- /26. funcion escalera/descripcion.md: -------------------------------------------------------------------------------- 1 | # Función Escalera 2 | 3 | Escribe una función llamada escalera que reciba un número como argumento. La función debe retornar una cadena de texto en forma de escalera como en el siguiente ejemplo: 4 | 5 | ```javascript 6 | escalera(2); 7 | // # 8 | // ## 9 | 10 | escalera(3); 11 | // # 12 | // ## 13 | // ### 14 | 15 | escalera(5); 16 | // # 17 | // ## 18 | // ### 19 | // #### 20 | // ##### 21 | ``` 22 | 23 | La primera línea del string tiene un signo de número (#), la segunda dos, y así sucesivamente hasta el número que ingresó el usuario. 24 | 25 | **Nota**: Recuerda que para representar un salto de línea en un string debes utilizar el caracter `\n`. 26 | -------------------------------------------------------------------------------- /26. funcion escalera/solucion.js: -------------------------------------------------------------------------------- 1 | function escalera(num) { 2 | var result = ''; 3 | 4 | for(var i = 1; i <= num; i++) { 5 | var floor = ''; 6 | for(var j = 1; j <= i; j++) { 7 | floor += '#' 8 | } 9 | 10 | floor += '\n'; 11 | result += floor; 12 | } 13 | 14 | return result; 15 | } 16 | -------------------------------------------------------------------------------- /27. imprime el arreglo/descripcion.md: -------------------------------------------------------------------------------- 1 | # Imprime el Arreglo 2 | 3 | Escribe un programa que itere sobre el arreglo `nombres` e imprima cada uno en la consola: 4 | 5 | ```javascript 6 | const nombres = ["Pedro", "Pablo", "Maria", "Juan", "Diana"]; 7 | 8 | // Pedro 9 | // Pablo 10 | // Maria 11 | // Juan 12 | // Diana 13 | ``` 14 | -------------------------------------------------------------------------------- /27. imprime el arreglo/solucion.js: -------------------------------------------------------------------------------- 1 | const nombres = ["Pedro", "Pablo", "Maria", "Juan", "Diana"]; 2 | 3 | for(let i = 0; i < nombres.length; i++) { 4 | console.log(nombres[i]); 5 | } 6 | -------------------------------------------------------------------------------- /28. obtener el tercer elemento/descripcion.md: -------------------------------------------------------------------------------- 1 | # Obtén el Tercer Elemento 2 | 3 | Escribe una función llamada elemento que recibe un arreglo como parámetro. La función debe devolver el valor que se encuentra en la tercera posición. Si el arreglo no tiene al menos 3 elementos deberá retornar -1. 4 | 5 | ```javascript 6 | elemento([1, 2, 3]); // retorna 3 7 | elemento(["d", "e", "f", "g"]); // retorna "f" 8 | elemento([5]); // retorna -1 9 | ``` 10 | -------------------------------------------------------------------------------- /28. obtener el tercer elemento/solucion.js: -------------------------------------------------------------------------------- 1 | function elemento(arr) { 2 | if(arr.length < 3) { 3 | return -1; 4 | } 5 | 6 | return arr[2]; 7 | } 8 | -------------------------------------------------------------------------------- /29. reemplaza el elemento/descripcion.md: -------------------------------------------------------------------------------- 1 | # Reemplaza el Elemento 2 | 3 | Escribe una función llamada reemplazar que reciba tres argumentos: un arreglo, una posición (un número) y un valor. La función debe reemplazar el valor que se encuentra en la posición que llega por parámetro con el nuevo valor y retornar el arreglo modificado. 4 | 5 | ```javascript 6 | reemplazar([1, 2, 3, 4], 1, 3); // [1, 3, 3, 4] 7 | reemplazar(["Pedro", "Maria", 0, "Juan"]); // ["Juan", "Maria"] 8 | ``` 9 | -------------------------------------------------------------------------------- /29. reemplaza el elemento/solucion.js: -------------------------------------------------------------------------------- 1 | function reemplazar(arr, pos, val) { 2 | arr[pos] = val 3 | return arr 4 | } 5 | -------------------------------------------------------------------------------- /30. crea el arreglo/descripcion.md: -------------------------------------------------------------------------------- 1 | # Crea el arreglo 2 | 3 | Escribe una función llamada crearArreglo que reciba un número y retorne un arreglo con los números desde 1 hasta el número que se reciba (incluyéndolo). 4 | 5 | ```javascript 6 | crearArreglo(3); // [1, 2, 3] 7 | crearArreglo(10); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 8 | crearArreglo(0); // [] 9 | ``` 10 | -------------------------------------------------------------------------------- /30. crea el arreglo/solucion.js: -------------------------------------------------------------------------------- 1 | function crearArreglo(num) { 2 | var arr = []; 3 | for(var i = 1; i <= num; i++) { 4 | arr.push(i) 5 | } 6 | return arr 7 | } 8 | -------------------------------------------------------------------------------- /31. crea el arreglo (rango)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Reemplaza el Elemento 2 | 3 | Escribe una función llamada crearRango que reciba dos números y retorne un arreglo con los números desde el primer números hasta el segundo (incluyéndolo): 4 | 5 | ```javascript 6 | crearRango(1, 3); // [1, 2, 3] 7 | crearRango(5, 10); // [5, 6, 7, 8, 9, 10] 8 | crearRango(0, 0); // [0] 9 | ``` 10 | 11 | **Nota:** Puedes asumir que siempre el primer número va a ser menor o igual que el segundo. 12 | -------------------------------------------------------------------------------- /31. crea el arreglo (rango)/solucion.js: -------------------------------------------------------------------------------- 1 | function crearRango(start, end) { 2 | var arr = []; 3 | for(var i = start; i <= end; i++) { 4 | arr.push(i); 5 | } 6 | 7 | return arr; 8 | } 9 | -------------------------------------------------------------------------------- /32. imprime la matriz/descripcion.md: -------------------------------------------------------------------------------- 1 | # Imprime la Matriz 2 | 3 | Imprime la matriz en la consola, el resultado final debe ser el siguiente: 4 | 5 | ```javascript 6 | const mat = [ 7 | ["Pablo", "Maria", "Pedro"], 8 | ["Diana", "Juan", "Federico"], 9 | ["Roberto", "Daniel", "Sandra"] 10 | ]; 11 | ``` 12 | 13 | ```markdown 14 | Grupo 1: 15 | Pablo 16 | Maria 17 | Pedro 18 | Grupo 2: 19 | Diana 20 | Juan 21 | Federico 22 | Grupo 3: 23 | Roberto 24 | Daniel 25 | Sandra 26 | ``` 27 | 28 | **Nota 1:** utiliza ciclos anidados para solucionar este ejercicio 29 | **Nota 2:** agrega dos espacios al principio de cada nombre 30 | -------------------------------------------------------------------------------- /32. imprime la matriz/solucion.js: -------------------------------------------------------------------------------- 1 | const mat = [ 2 | ["Pablo", "Maria", "Pedro"], 3 | ["Diana", "Juan", "Federico"], 4 | ["Roberto", "Daniel", "Sandra"] 5 | ]; 6 | 7 | for(let i = 0; i < mat.length; i++) { 8 | console.log(`Grupo ${i+1}:`); 9 | for(let j = 0; j < mat[i].length; j++) { 10 | console.log(` ${mat[i][j]}`); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /33. mayores a diez/descripcion.md: -------------------------------------------------------------------------------- 1 | # Mayores a Diez 2 | 3 | Escribe una función llamada mayoresDiez que reciba un arreglo de números y retorne otro arreglo con todos los números que sean mayores a diez: 4 | 5 | ```javascript 6 | mayoresDiez([1, 23, 5, 40]); // [23, 40] 7 | mayoresDiez([12, 45, 67]); // [12, 45, 67] 8 | mayoresDiez([1, 2, 3]); // [] 9 | ``` 10 | 11 | **Nota:** este ejercicio lo debes hacer sin ayuda de la función filter de JavaScript. 12 | -------------------------------------------------------------------------------- /33. mayores a diez/solucion.js: -------------------------------------------------------------------------------- 1 | function mayoresDiez(arr) { 2 | let result = []; 3 | 4 | for(let i = 0; i < arr.length; i++) { 5 | if(arr[i] > 10) { 6 | result.push(arr[i]); 7 | } 8 | } 9 | 10 | return result; 11 | } 12 | -------------------------------------------------------------------------------- /34. cuantos caracteres a hay/descripcion.md: -------------------------------------------------------------------------------- 1 | # Cuántos Carácteres "a" hay 2 | 3 | Escribe una función llamada contarAs que reciba un string (una cadena de texto) y retorna el número de caracteres "a" (minúscula) hay: 4 | 5 | ```javascript 6 | contarAs("Hola Pablo"); // 2 7 | contarAs("Hasta la próxima"); // 4 8 | contarAs("Bien Pedro!"); // 0 9 | ``` 10 | -------------------------------------------------------------------------------- /34. cuantos caracteres a hay/solucion.js: -------------------------------------------------------------------------------- 1 | function contarAs(string) { 2 | var count = 0; 3 | 4 | for(var i = 0; i < string.length; i++) { 5 | if(string[i] === 'a') { 6 | count++; 7 | } 8 | } 9 | 10 | return count; 11 | } 12 | -------------------------------------------------------------------------------- /35. cuantos unos hay/descripcion.md: -------------------------------------------------------------------------------- 1 | # Cuántos Unos hay 2 | 3 | Escribe una función llamada contarUnos que reciba un arreglo y retorne la cantidad de números uno (1) que haya en el arreglo. 4 | 5 | ```javascript 6 | contarUnos([5, 1, 4, 1]); // 2 7 | contarUnos([1, 1, 1]); // 3 8 | contarUnos([]); // 0 9 | ``` 10 | -------------------------------------------------------------------------------- /35. cuantos unos hay/solucion.js: -------------------------------------------------------------------------------- 1 | function contarUnos(list) { 2 | var count = 0; 3 | 4 | for(var i = 0; i < list.length; i++) { 5 | if(list[i] === 1) { 6 | count++; 7 | } 8 | } 9 | 10 | return count; 11 | } 12 | -------------------------------------------------------------------------------- /36. arreglo a cadena/descripcion.md: -------------------------------------------------------------------------------- 1 | # Arreglo a Cadena 2 | 3 | Escribe una función unirArreglo que reciba un arreglo y retorna una cadena de texto con todos los elementos separados por coma (,). 4 | 5 | ```javascript 6 | unirArreglo([1, 2, 3]); // "1,2,3" 7 | unirArreglo(["a", "b", "c"]); // "a,b,c" 8 | unirArreglo([]); // "" 9 | ``` 10 | 11 | **Nota:** este ejercicio lo debes realizar sin la ayuda de el método join que trae JavaScript. 12 | -------------------------------------------------------------------------------- /36. arreglo a cadena/solucion.js: -------------------------------------------------------------------------------- 1 | function unirArreglo(list) { 2 | return list.join(','); 3 | } 4 | -------------------------------------------------------------------------------- /37. separar palabras/descripcion.md: -------------------------------------------------------------------------------- 1 | # Separar Palabras 2 | 3 | Escribe una función llamada palabras que reciba un string y retorne un arreglo con las palabras individuales que aparecen en el string. 4 | 5 | **Nota:** puedes asumir que las palabras están separadas por un espacio. 6 | 7 | ```javascript 8 | palabras("hola mundo"); // ["hola", "mundo"] 9 | palabras("make it real"); // ["make", "it", "real"] 10 | ``` 11 | -------------------------------------------------------------------------------- /37. separar palabras/solucion.js: -------------------------------------------------------------------------------- 1 | function palabras(string) { 2 | return string.split(' '); 3 | } 4 | -------------------------------------------------------------------------------- /38. la abuela sorda/descripcion.md: -------------------------------------------------------------------------------- 1 | # La Abuela Sorda 2 | 3 | Escribe una función llamada abuela que reciba un string (una cadena de texto). 4 | 5 | Si el string está todo en mayúsculas la función debe retornar la frase "Ahh si, manzanas!". De lo contrario, deberá retornar la frase "Habla más duro mijito". 6 | 7 | Por último, si el string es vacío (o son sólo espacios) debe retornar la frase "Dices algo?". 8 | 9 | ```javascript 10 | abuela("hola"); // "Habla más duro mijito" 11 | abuela("HOLA"); // "Ahh si, manzanas!" 12 | abuela(""); // "Dices algo?" 13 | abuela(" "); // "Dices algo?" 14 | ``` 15 | -------------------------------------------------------------------------------- /38. la abuela sorda/solucion.js: -------------------------------------------------------------------------------- 1 | function abuela(string) { 2 | if(string.trim() === '') { 3 | return 'Dices algo?'; 4 | } 5 | if(string.toUpperCase() === string) { 6 | return 'Ahh si, manzanas!'; 7 | } 8 | 9 | return 'Habla más duro mijito'; 10 | } 11 | -------------------------------------------------------------------------------- /39. generador de contrasenas/descripcion.md: -------------------------------------------------------------------------------- 1 | # Generador de Contraseñas 2 | 3 | Escribe una función llamada contrasena que reciba un string y retorne otro string realizando los siguientes cambios sobre el string de entrada: 4 | 5 | * Las mayúsculas se reemplazan por minúsculas. 6 | * Se eliminan los espacios en blanco. 7 | * Reemplaza el caracter "a" por "4". 8 | * Reemplaza el caracter "e" por "3". 9 | * Reemplaza el caracter "i" por "1". 10 | * Reemplaza el carater "o" por "0". 11 | 12 | ```javascript 13 | contrasena("hola"); // "h0l4" 14 | contrasena("esta es una prueba"); // "3st43sun4pru3b4" 15 | contrasena(""); // "" 16 | ``` 17 | 18 | **Nota:** Esta no es una forma segura de generar contraseñas y no la recomendamos. 19 | -------------------------------------------------------------------------------- /39. generador de contrasenas/solucion.js: -------------------------------------------------------------------------------- 1 | function contrasena(string) { 2 | var password = ''; 3 | 4 | for(var i = 0; i < string.length; i++) { 5 | var char = string[i].toLowerCase(); 6 | 7 | if(char === ' ') { 8 | char = ''; 9 | } else if(char === 'a') { 10 | char = 4; 11 | } else if(char === 'e') { 12 | char = 3; 13 | } else if(char === 'i') { 14 | char = 1; 15 | } else if(char === 'o') { 16 | char = 0 17 | } 18 | 19 | password += char 20 | } 21 | 22 | return password; 23 | } 24 | -------------------------------------------------------------------------------- /40. capitalizar/descripcion.md: -------------------------------------------------------------------------------- 1 | # Capitalizar 2 | 3 | Escribe una función llamada capitalizar que reciba una cadena y capitalice cada palabra de la cadena. 4 | 5 | **Nota:** puedes asumir que cada palabra está separada por espacio. 6 | 7 | ```javascript 8 | capitalizar("pedro perez"); // "Pedro Perez" 9 | capitalizar("make it real"); // "Make it Real" 10 | ``` 11 | -------------------------------------------------------------------------------- /40. capitalizar/solucion.js: -------------------------------------------------------------------------------- 1 | function capitalizar(string) { 2 | var words = string.split(' '); 3 | 4 | for(var i = 0; i < words.length; i++) { 5 | var chars = words[i].split(''); 6 | 7 | chars[0] = chars[0].toUpperCase(); 8 | 9 | words[i] = chars.join(''); 10 | } 11 | 12 | return words.join(' '); 13 | } 14 | -------------------------------------------------------------------------------- /41. crea el objeto/descripcion.md: -------------------------------------------------------------------------------- 1 | # Crea el Objeto 2 | 3 | Crea una variable llamada pedro de tipo objeto literal con las siguientes llaves y valores: 4 | 5 | * nombre - "Pedro Perez" 6 | * edad - 30 7 | * activo - true 8 | * hobbies - un arreglo con los siguientes elementos: "programar", "squash", "piano". 9 | -------------------------------------------------------------------------------- /41. crea el objeto/solucion.js: -------------------------------------------------------------------------------- 1 | var pedro = { 2 | nombre: 'Pedro Perez', 3 | edad: 30, 4 | activo: true, 5 | hobbies: ['programar', 'squash', 'piano'] 6 | } 7 | -------------------------------------------------------------------------------- /42. saluda (objetos)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Saluda (objetos) 2 | 3 | Escribe una función llamada saludar que reciba un objeto que representa una persona y retorne la frase como se muestra a continuación: 4 | 5 | ```javascript 6 | saludar({ nombre: "Pedro", edad: 23 }); 7 | // "Hola Pedro, tienes 23 años" 8 | 9 | saludar({ nombre: "Maria", edad: 35 }); 10 | // "Hola Maria, tienes 35 años" 11 | 12 | saludar({ nombre: "Juan" }); 13 | // "Hola Juan" 14 | ``` 15 | 16 | El objeto siempre tendrá la llave nombre. La llave edad es opcional y cuando no está presente deberás omitir la parte ", tienes x años". 17 | -------------------------------------------------------------------------------- /42. saluda (objetos)/solucion.js: -------------------------------------------------------------------------------- 1 | function saludar(person) { 2 | if(edad) { 3 | return 'Hola ' + person.nombre + ', tienes ' + person.edad + ' años'; 4 | } 5 | 6 | return 'Hola ' + nombre; 7 | } 8 | -------------------------------------------------------------------------------- /43. agregar peso/descripcion.md: -------------------------------------------------------------------------------- 1 | # Agregar Peso 2 | 3 | Escribe una función agregarPeso que reciba un objeto (que representa una persona) y un número. La función deberá retornar el mismo objeto de entrada pero con una nueva llave peso cuyo valor deberá ser el número que llega por parámetro: 4 | 5 | ```javascript 6 | agregarPeso({ nombre: "Pedro" }, 40); 7 | // { nombre: "Pedro", edad: 40 } 8 | 9 | agregarPeso({ nombre: "Maria" }, 23); 10 | // { nombre: "Maria", edad: 23 } 11 | ``` 12 | -------------------------------------------------------------------------------- /43. agregar peso/solucion.js: -------------------------------------------------------------------------------- 1 | function agregarPeso(obj, weight) { 2 | obj.peso = weight; 3 | return obj 4 | } 5 | -------------------------------------------------------------------------------- /44. obtener el valor del objeto/descripcion.md: -------------------------------------------------------------------------------- 1 | # Obtener el Valor del Objeto 2 | 3 | Escribe una función llamada obtenerValor que reciba un objeto y un string (que representa una llave en el objeto). La función deberá retornar el valor que tenga la llave que llega como segundo parámetro. Si la llave no existe retorna false: 4 | 5 | ```javascript 6 | obtenerValor({ a: 1, b: 2, c: 3 }, "a"); // 1 7 | obtenerValor({ a: 1, b: 2, c: 3 }, "b"); // 2 8 | obtenerValor({ b: 2, c: 3 }, "a"); // false 9 | ``` 10 | -------------------------------------------------------------------------------- /44. obtener el valor del objeto/solucion.js: -------------------------------------------------------------------------------- 1 | function obtenerValor(obj, prop) { 2 | if(!obj.hasOwnProperty(prop)) return false 3 | return obj[prop]; 4 | } 5 | -------------------------------------------------------------------------------- /45. cambiar el peso/descripcion.md: -------------------------------------------------------------------------------- 1 | # Cambiar el Peso 2 | 3 | Escribe una función llamada cambiarPeso que reciba un objeto (que representa una persona). Si la llave peso está presente deberás cambiarla multiplicando el peso original por dos (2) y retornar el objeto. Si no está presente deberás retornar null. 4 | 5 | ```javascript 6 | cambiarPeso({ peso: 70 }); // { peso: 140 } 7 | cambiarPeso({ nombre: "Maria", peso: 48 }); // { nombre: "Maria", peso: 96 } 8 | cambiarPeso({ nombre: "Juan" }); // null 9 | cambiarPeso({}); // null 10 | ``` 11 | -------------------------------------------------------------------------------- /45. cambiar el peso/solucion.js: -------------------------------------------------------------------------------- 1 | function cambiarPeso(obj) { 2 | if(!obj.hasOwnProperty('peso')) { 3 | return null; 4 | } 5 | obj.peso = obj.peso * 2; 6 | return obj 7 | } 8 | -------------------------------------------------------------------------------- /46. elimina el peso/descripcion.md: -------------------------------------------------------------------------------- 1 | # Elimina el Peso 2 | 3 | Escribe una función eliminarPeso que reciba un objeto. La función deberá eliminar la llave peso (si existe) y retornar el objeto modificado. 4 | 5 | ```javascript 6 | eliminarPeso({ nombre: "Juan", peso: 40 }); // { nombre: "Juan" } 7 | eliminarPeso({ peso: 30 }); // {} 8 | eliminarPeso({ nombre: "Diana" }); // { nombre: "Diana" } 9 | ``` 10 | -------------------------------------------------------------------------------- /46. elimina el peso/solucion.js: -------------------------------------------------------------------------------- 1 | function eliminarPeso(obj) { 2 | delete obj.peso; 3 | 4 | return obj; 5 | } 6 | -------------------------------------------------------------------------------- /47. existe la llave/descripcion.md: -------------------------------------------------------------------------------- 1 | # Existe la llave 2 | 3 | Escribe una función existeLlave que reciba un objeto y un string. La función deberá retornar true si el string es una llave del objeto, false de lo contrario: 4 | 5 | ```javascript 6 | existeLlave({ name: "Alejo" }, "name"); // true 7 | existeLlave({ name: "Alejo" }, "age"); // false 8 | existeLlave({}, "peso"); // false 9 | existeLlave({ name: "Alejo", peso: 67 }, "peso"); // true 10 | ``` 11 | -------------------------------------------------------------------------------- /47. existe la llave/solucion.js: -------------------------------------------------------------------------------- 1 | function existeLlave(obj, key) { 2 | return obj.hasOwnProperty(key); 3 | } 4 | -------------------------------------------------------------------------------- /48. buscando el producto/descripcion.md: -------------------------------------------------------------------------------- 1 | # Buscando el Producto 2 | 3 | Escribe una función buscarProducto que reciba un arreglo de objetos y un número. La función deberá buscar el número dentro de cada objeto (en la llave id) y retornar el objeto encontrado. 4 | 5 | Si no encuentra un objeto con ese id deberá retornar null. 6 | 7 | ```javascript 8 | buscarProducto([{ id: 1, nombre: "A" }, { id: 2, nombre: "B" }], 1); 9 | // { id: 1, nombre: "A" } 10 | buscarProducto([{ id: 1, nombre: "A" }, { id: 2, nombre: "B" }], 566); 11 | // null 12 | ``` 13 | -------------------------------------------------------------------------------- /48. buscando el producto/solucion.js: -------------------------------------------------------------------------------- 1 | function buscarProducto(arr, id) { 2 | for(var i = 0; i < arr.length; i++) { 3 | if(arr[i].id === id) { 4 | return arr[i]; 5 | } 6 | } 7 | 8 | return null; 9 | } 10 | -------------------------------------------------------------------------------- /49. descifra la frase/descripcion.md: -------------------------------------------------------------------------------- 1 | # Descifra la Frase 2 | 3 | Escribe una función descifrar que reciba un string y un objeto. Utiliza las propiedades del objeto para reemplazar los caracteres de la cadena y retorna el resultado: 4 | 5 | ```javascript 6 | descifrar("h0l4", { 0: "o", 4: "a" }); // "hola" 7 | descifrar("pyrmizo", { y: "e", z: "s" }); // "permiso" 8 | descifrar("igual", { h: "n" }); // "igual" 9 | ``` 10 | -------------------------------------------------------------------------------- /49. descifra la frase/solucion.js: -------------------------------------------------------------------------------- 1 | function decifrar(string, obj) { 2 | var chars = string.split(''); 3 | 4 | for(var i = 0; i < chars.length; i++) { 5 | var char = chars[i]; 6 | if(obj.hasOwnProperty(char)) { 7 | chars[i] = obj[char]; 8 | } 9 | } 10 | 11 | return chars.join(''); 12 | } 13 | -------------------------------------------------------------------------------- /50. imprime el arreglo (foreach)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Imprime el Arreglo (forEach) 2 | 3 | Imprime todos los elementos del arreglo utilizando el método forEach de los arreglos. 4 | 5 | El resultado debería ser el siguiente: 6 | 7 | ```javascript 8 | const arr = [45, "Hola", 82, 2, 67, true, "Juan", 12.34]; 9 | ``` 10 | 11 | ```markdown 12 | 45 13 | Hola 14 | 82 15 | 2 16 | 67 17 | true 18 | Juan 19 | 12.34 20 | ``` 21 | -------------------------------------------------------------------------------- /50. imprime el arreglo (foreach)/solucion.js: -------------------------------------------------------------------------------- 1 | const arr = [45, "Hola", 82, 2, 67, true, "Juan", 12.34]; 2 | 3 | arr.forEach(el => console.log(el)) 4 | -------------------------------------------------------------------------------- /51. numeros pares (filter)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Números Pares (filter) 2 | 3 | Escribe una función llamada pares que reciba un arreglo de números y retorne un nuevo arreglo con los números pares únicamente: 4 | 5 | ```javascript 6 | pares([0, 1, 2, 3, 4]); // [0, 2, 4] 7 | pares([120, 876, 934, 1298]); // [120, 876, 934, 1298] 8 | pares([7, 921, 43, 9649]); // [] 9 | ``` 10 | 11 | **Nota:** Intenta utilizar el método filter de los arreglos para solucionar este ejercicio. 12 | -------------------------------------------------------------------------------- /51. numeros pares (filter)/solucion.js: -------------------------------------------------------------------------------- 1 | function pares(list) { 2 | return list.filter(num => num % 2 === 0); 3 | } 4 | -------------------------------------------------------------------------------- /52. posiciones pares (filter)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Posiciones Pares (filter) 2 | 3 | Escribe una función llamada posPares que reciba un arreglo y retorne un nuevo arreglo con los valores de las posiciones pares del arreglo que llega como argumento. 4 | 5 | ```javascript 6 | posPares(["a", "b", "c"]); // ["a", "c"] 7 | posPares([0, 1, 2, 3, 4]); // [0, 2, 4] 8 | posPares([]); // [] 9 | ``` 10 | 11 | **Nota:** Intenta utilizar el método filter de los arreglos. 12 | -------------------------------------------------------------------------------- /52. posiciones pares (filter)/solucion.js: -------------------------------------------------------------------------------- 1 | function posPares(list) { 2 | return list.filter((el, i) => i % 2 === 0) 3 | } 4 | -------------------------------------------------------------------------------- /53. multiplica cada numero/descripcion.md: -------------------------------------------------------------------------------- 1 | # Multiplica Cada Número 2 | 3 | Escribe una función llamada multiplicar que reciba un arreglo (de números) y un número. La función debe retornar un nuevo arreglo con cada número multiplicado por segundo número: 4 | 5 | ```javascript 6 | multiplicar([1, 2, 3], 2); // [2, 4, 6] 7 | multiplicar([7, 4], 3); // [21, 12] 8 | multiplicar([], 10); // [] 9 | ``` 10 | 11 | **Nota:** intenta utilizar el método map de los arreglos. 12 | -------------------------------------------------------------------------------- /53. multiplica cada numero/solucion.js: -------------------------------------------------------------------------------- 1 | function multiplicar(list, factor) { 2 | return list.map(num => num * factor) 3 | } 4 | -------------------------------------------------------------------------------- /54. metodos/descripcion.md: -------------------------------------------------------------------------------- 1 | # Métodos 2 | 3 | En este ejercicio deberás agregar dos métodos a el objeto `persona`. 4 | 5 | Agrega un método llamado saludar que reciba un nombre y retorna una frase saludando a esa persona como se muestra a continuación: 6 | 7 | ```javascript 8 | persona.saludar("Pedro"); // "Hola Pedro, me llamo Maria" 9 | persona.saludar("Juan"); // "Hola Juan, me llamo Maria" 10 | ``` 11 | 12 | Agrega otro método llamado bmi que retorne el índice de masa corporal de la persona. Recuerda que el índice de masa corporal se calcula con la siguiente fórmula: `peso / altura^2`. 13 | 14 | Por ejemplo, asumiendo que el peso es 54 y la altura es 1.7: 15 | 16 | ```javascript 17 | persona.bmi(); // 18.68512110726644 18 | ``` 19 | -------------------------------------------------------------------------------- /54. metodos/solucion.js: -------------------------------------------------------------------------------- 1 | var persona = { 2 | nombre: "Maria", 3 | peso: 54, 4 | altura: 1.7, 5 | saludar: function(name) { 6 | return `Hola ${name}, me llamo ${this.nombre}` 7 | }, 8 | bmi: function() { 9 | return this.peso / Math.pow(this.altura, 2) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /55. lista de nombres/descripcion.md: -------------------------------------------------------------------------------- 1 | # Lista de Nombres 2 | 3 | Escribe una función llamada extraerNombres que reciba un arreglo (de objetos) y retorne un nuevo arreglo con todos los nombres que tengan al menos una "a" (mayúscula o minúscula): 4 | 5 | ```javascript 6 | let personas = [ 7 | { nombre: "Pedro" }, 8 | { nombre: "Adela" }, 9 | { nombre: "Maria" }, 10 | { nombre: "Luis" } 11 | ]; 12 | 13 | extraerNombres(personas); // ["Adela", "Maria"] 14 | ``` 15 | -------------------------------------------------------------------------------- /55. lista de nombres/solucion.js: -------------------------------------------------------------------------------- 1 | function extraerNombres(list) { 2 | var names = list.map(p => p.nombre); 3 | var namesIncludingA = names.filter(name => name.toLowerCase().includes('a')); 4 | 5 | return namesIncludingA; 6 | } 7 | -------------------------------------------------------------------------------- /56. producto (funcion constructora)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Producto (Función Constructora) 2 | 3 | Crea una **función constructora** llamada `Producto` que reciba dos argumentos: el nombre y el precio. La función deberá inicializar las propiedades nombre y precio del objeto con los valores que llegan como parámetros. 4 | 5 | A continuación mostramos algunos ejemplos de la forma en la que se va a utilizar esta **función constructora**: 6 | 7 | ```javascript 8 | const pan = new Producto("Pan", 2.5); 9 | pan.nombre; // "Pan" 10 | pan.precio; // 2.5 11 | 12 | const leche = new Producto("Leche", 3.7); 13 | leche.nombre; // "Leche" 14 | leche.peso; // 3.7 15 | ``` 16 | -------------------------------------------------------------------------------- /56. producto (funcion constructora)/solucion.js: -------------------------------------------------------------------------------- 1 | function Producto(nombre, precio) { 2 | this.nombre = nombre; 3 | this.precio = precio; 4 | } 5 | -------------------------------------------------------------------------------- /57. persona (funcion constructora)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Persona (Función Constructora) 2 | 3 | Agrega dos métodos a la función constructora Persona: saludar y bmi. 4 | 5 | saludar debe recibir un nombre y retornar el string `"Hola X, me llamo Y"` donde `X` es el argumento que se recibe y `Y` es la propiedad nombre del objeto. 6 | 7 | bmi no recibe ningún argumento y retorna el índice de masa corporal que se calcula con la siguiente fórmula: 8 | 9 | `peso / altura^2` 10 | 11 | Un ejemplo de cómo invocaríamos los métodos: 12 | 13 | ```javascript 14 | const pedro = new Persona("Pedro", 72, 1.5); 15 | pedro.saludar("Maria"); // "Hola Maria, me llamo Pedro" 16 | pedro.bmi(); // 32 17 | ``` 18 | 19 | ```javascript 20 | function Persona(nombre, peso, altura) { 21 | this.nombre = nombre; 22 | this.peso = peso; 23 | this.altura = altura; 24 | } 25 | ``` 26 | -------------------------------------------------------------------------------- /57. persona (funcion constructora)/solucion.js: -------------------------------------------------------------------------------- 1 | function Persona(nombre, peso, altura) { 2 | this.nombre = nombre; 3 | this.peso = peso; 4 | this.altura = altura; 5 | } 6 | 7 | // escribe abajo tu solución 8 | Persona.prototype.saludar = function(nombre) { 9 | return 'Hola ' + nombre + ', me llamo ' + this.nombre; 10 | } 11 | 12 | Persona.prototype.bmi = function() { 13 | return this.peso / Math.pow(this.altura, 2); 14 | } 15 | -------------------------------------------------------------------------------- /58. auto (funcion constructora)/descripcion.md: -------------------------------------------------------------------------------- 1 | # Auto (Función Constructora) 2 | 3 | Crea una **función constructora** llamada `Auto` que no reciba ningún argumento pero inicializa una propiedad llamada velocidad en 0. 4 | 5 | Agrega dos métodos al prototipo de la función constructora: 6 | 7 | * acelerar: recibe un número como argumento e **incrementa** la propiedad velocidad de acuerdo al número. 8 | * frenar: recibe un número como argumento y **decrementa** la propiedad velocidad de acuerdo al número. Sin embargo, si la velocidad terminara siendo negativa debe quedar en 0. 9 | 10 | Un ejemplo de cómo utilizaríamos esta función constructora: 11 | 12 | ```javascript 13 | const a1 = new Auto(); 14 | a1.velocidad; // 0 15 | 16 | a1.acelerar(1); 17 | a1.acelerar(2); 18 | a1.velocidad; // 3 19 | 20 | a1.frenar(2); 21 | a1.velocidad; // 2 22 | a1.frenar(3); 23 | // la velocidad quedaría en -1, así que se deja en 0 24 | a1.velocidad; // 0 25 | ``` 26 | -------------------------------------------------------------------------------- /58. auto (funcion constructora)/solucion.js: -------------------------------------------------------------------------------- 1 | function Auto() { 2 | this.velocidad = 0; 3 | this.acelerar = function(val) { 4 | this.velocidad += val; 5 | } 6 | this.frenar = function(val) { 7 | var velocidad = this.velocidad - val; 8 | if(velocidad > 0) { 9 | this.velocidad = velocidad; 10 | } else { 11 | this.velocidad = 0; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /59. promedio/descripcion.md: -------------------------------------------------------------------------------- 1 | # Promedio 2 | 3 | Agrega un método llamado promedio a la función constructora Array que retorne el promedio de los elementos en el arreglo: 4 | 5 | ```javascript 6 | [1, 2, 3, 4].promedio(); // 2.5 7 | [7, 8, 9].promedio(); // 8 8 | [300, 100].promedio(); // 200 9 | ``` 10 | -------------------------------------------------------------------------------- /59. promedio/solucion.js: -------------------------------------------------------------------------------- 1 | Array.prototype.promedio = function() { 2 | var length = this.length; 3 | var sum = this.reduce((sum, val) => { 4 | return sum + val; 5 | }); 6 | 7 | return sum / length; 8 | } 9 | -------------------------------------------------------------------------------- /60. palindrome/descripcion.md: -------------------------------------------------------------------------------- 1 | # Palíndrome 2 | 3 | Agrega un nuevo método llamado palindrome al prototipo de String que retorne true si el string es un palíndrome, false de lo contrario. 4 | 5 | Recuerda que un palíndrome es una frase que se lee igual de izquierda a derecha que de derecha a izquierda (excluyendo los espacios en blanco): 6 | 7 | ```javascript 8 | "anita lava la tina".palindrome(); // true 9 | "aman a panama".palindrome(); // true 10 | "hola mundo".palindrome(); // false 11 | ``` 12 | -------------------------------------------------------------------------------- /60. palindrome/solucion.js: -------------------------------------------------------------------------------- 1 | String.prototype.palindrome = function() { 2 | var string = this.replace(/\s/g, '').toLowerCase(); 3 | var reverseString = string.split('').reverse().join(''); 4 | 5 | return string === reverseString; 6 | } 7 | --------------------------------------------------------------------------------