forked from Laboratoria/DEV013-text-analyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalyzer.js
More file actions
68 lines (49 loc) · 3.41 KB
/
analyzer.js
File metadata and controls
68 lines (49 loc) · 3.41 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
const analyzer = {
getWordCount: (text) => {
//TODO: esta función debe retornar el recuento de palabras que se encuentran en el parámetro `text` de tipo `string`.
const palabras = text.split(/\s+/); /*split: divide un objeto de tipo String en un array, en este caso split(separador) /\s+/:encuentra todos los espacios*/
const palabrasFiltradas = palabras.filter(palabra => palabra !== '');
return palabrasFiltradas.length; /* length:length de un objeto String representa la longitud de una cadena*/
},
getCharacterCount: (text) => {
//TODO: esta función debe retornar el recuento de caracteres que se encuentran en el parámetro `text` de tipo `string`.
const caracteres = text.trim(); /*trim:elimina los espacio de adelante y atras*/
return caracteres.length;
},
getCharacterCountExcludingSpaces: (text) => {
//TODO: esta función debe retornar el recuento de caracteres excluyendo espacios y signos de puntuación que se encuentran en el parámetro `text` de tipo `string`.
const caracteresexcluidos = text.trim().replace(/\W/g,'').length; /*/\W/g:esta expresion regular obtiene signos de puntuacion(menos _)*/
return caracteresexcluidos; /*replace: reemplaza una concidencia por un valor(concidencia, valor al cual cambiará)*/
},
getAverageWordLength: (text) => {
//TODO: esta función debe retornar la longitud media de palabras que se encuentran en el parámetro `text` de tipo `string`.
const cantDeCaracteres = text.replace(/\s/g, "").length; /*\s : espacios de cualquier tipo*/
const cantPalabras = analyzer.getWordCount(text); /*para llamar a otra funcion, en este caso debe ir primero analyzer.*/
const promedioPalabras = parseFloat((cantDeCaracteres / cantPalabras).toFixed(2)) ; /*.toFixed(2)..(numero): este metodo sirve para que solo aparezcan 2 decimales*/
return promedioPalabras; /*parseFloat: aqui se utiliza para convertir la cadena a un número decimal*/
},
getNumberCount: (text) => {
//TODO: esta función debe retornar cúantos números se encuentran en el parámetro `text` de tipo `string`.
const cantnumeros = text.match(/\b\d+(\.\d+)?\b/g); /* match:especifica la coincidencia de una expresión regular con una cadena*/
const contadorNumeros = cantnumeros.length ; /*?: operador condicional*/
return contadorNumeros;
},
getNumberSum: (text) => {
//TODO: esta función debe retornar la suma de todos los números que se encuentran en el parámetro `text` de tipo `string`.
const cantNumeros = text.match(/\b\d+(\.\d+)?\b/g);
// Verifica si hay números
if (!cantNumeros) {
return 0;
}
// Inicia la suma
let sumaNumeros = 0;
// Itera sobre cada número y agrégalo a la suma /* i++: aumenta uno c/u */
for (let i = 0; i < cantNumeros.length; i++) { /*i=0,1,2 i=0,1,2 < 1,2,3 (es un ejemplo)*/
sumaNumeros += parseFloat(cantNumeros[i]); /*parseFloat: usamos esto por que queremos que tambien validen los decimales*/
}
sumaNumeros = parseFloat(sumaNumeros.toFixed(2));
// console.log('Suma de números:', sumaNumeros);
return sumaNumeros;
},
};
export default analyzer;