forked from mouredev/hello-javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path17-functions-exercises.js
More file actions
149 lines (129 loc) · 5.35 KB
/
Copy path17-functions-exercises.js
File metadata and controls
149 lines (129 loc) · 5.35 KB
1
2
3
4
5
6
7
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*
Clase 32 - Ejercicios: Funciones
Vídeo: https://youtu.be/1glVfFxj8a4?t=14146
*/
// NOTA: Explora diferentes sintaxis de funciones para resolver los ejercicios
// 1. Crea una función que reciba dos números y devuelva su suma
function suma(a, b) {
return a + b;
}
// 2. Crea una función que reciba un array de números y devuelva el mayor de ellos
function mayorNumero(array) {
if (array.length === 0) return null; // Manejo de caso de array vacío
let max = array[0];
for (let i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
// Ejemplos de uso
console.log(mayorNumero([1, 2, 3, 4, 5])); // 5
// 3. Crea una función que reciba un string y devuelva el número de vocales que contiene
function contarVocales(str) {
const vocales = 'aeiouAEIOU';
let contador = 0;
for (let char of str) {
if (vocales.includes(char)) {
contador++;
}
}
return contador;
}
// Ejemplos de uso
console.log(contarVocales("Hola Mundo")); // 4 (o, a, u, o)
// 4. Crea una función que reciba un array de strings y devuelva un nuevo array con las strings en mayúsculas
function convertirAMayusculas(array) {
return array.map(str => str.toUpperCase());
}
// 5. Crea una función que reciba un número y devuelva true si es primo, y false en caso contrario
//Define el concpto de número primo: un número mayor que 1 que solo es divisible por 1 y por sí mismo.
function esPrimo(num) {
if (num <= 1) return false; // Los números menores o iguales a 1 no son primos
for (let i = 2; i <= Math.sqrt(num); i++) {
console.log(`La raiz cuadrada de ${num} es: ${Math.sqrt(num)}`);
if (num % 2 === 0) {
return false; // Si es divisible por cualquier número distinto de 1 y sí mismo, no es primo
}
}
return true; // Si no se encontró ningún divisor, es primo
}
// Ejemplos de uso
console.log(esPrimo(7)); // true
console.log(esPrimo(10)); // false
console.log(esPrimo(54688)); // false
console.log(esPrimo(2)); // true
console.log(esPrimo(1)); // false
let numero = 2;
console.log(`La raiz cuadrada de ${numero} es: ${Math.sqrt(numero)}`); // La raíz cuadrada de 3 es: 1.7320508075688772
// 6. Crea una función que reciba dos arrays y devuelva un nuevo array que contenga los elementos comunes entre ambos
function elementosComunes(array1, array2) {
return array1.filter(element => array2.includes(element));
}
// Ejemplos de uso
console.log(elementosComunes([1, 2, 3], [2, 3, 4])); // [2, 3]
// 7. Crea una función que reciba un array de números y devuelva la suma de todos los números pares
function sumaPares(array) {
return array.reduce((sum, num) => {
if (num % 2 === 0) {
return sum + num;
}
return sum;
}, 0);
}
// Ejemplos de uso
console.log(sumaPares([1, 2, 3, 4, 5,20,10])); // 6 (2 + 4)
// 8. Crea una función que reciba un array de números y devuelva un nuevo array con cada número elevado al cuadrado
function elevarAlCuadrado(array) {
return array.map(num => num * num);
}
// Ejemplos de uso
console.log(elevarAlCuadrado([1, 2, 4, 8,16,32,64,128,256])); // [1, 4, 16, 64, 256, 1024, 4096, 16384, 65536]
// 9. Crea una función que reciba una cadena de texto y devuelva la misma cadena con las palabras en orden inverso
function invertirPalabras(cadena) {
return cadena.split(' ').reverse().join(' ');
}
// Ejemplos de uso
console.log(invertirPalabras("Hola Mundo LOCO")); // "Mundo Hola"
// 10. Crea una función que calcule el factorial de un número dado
// El factorial de un número n es el producto de todos los números enteros positivos desde 1 hasta n.
function factorial(num) {
if (num < 0) return null; // Factorial no está definido para números negativos
if (num === 0 || num === 1) return 1; // El factorial de 0 y 1 es 1
let resultado = 1;
for (let i = 2; i <= num; i++) {
//imprimir las operaciones
console.log(`Multiplicando ${resultado} por ${i}`);
resultado *= i;
}
//imprimir el resultado
console.log(`El factorial de ${num} es: ${resultado}`);
//return resultado.toLocaleString('es-ES', { style: 'decimal' });
return resultado; // Convertir el resultado a letras
}
// Ejemplos de uso
/*console.log(factorial(5)); // 120
console.log(factorial(0)); // 1*/
console.log(factorial(5));
//Quiero hacer el ejercicio 10 con arrow functions
const factorialArrow = (num) => {
if (num < 0) return null; // Factorial no está definido para números negativos
if (num === 0 || num === 1) return 1; // El factorial de 0 y 1 es 1
let resultado = 1;
for (let i = 2; i <= num; i++) {
console.log(`Multiplicando ${resultado} por ${i}`);
resultado *= i;
}
console.log(`El factorial de ${num} es: ${resultado}`);
return resultado;
};
// Ejemplos de uso
console.log(factorialArrow(5)); // 120
console.log(factorialArrow(0)); // 1
console.log(factorialArrow(10)); // 3628800
console.log(factorialArrow(20)); // 2432902008176640000
console.log(factorialArrow(30)); // 265252859812191058636308480000000
console.log(factorialArrow(50)); // 3041409320171337804361269007e+68
// Ejemplo de uso de la función factorial con un número muy grande
console.log(factorialArrow(100)); // 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000