Skip to content

Commit 85582cd

Browse files
committed
#2 - Typescript
1 parent c5dfb63 commit 85582cd

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
DIFICULTAD EXTRA (opcional):
3+
Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
4+
- La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
5+
- Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
6+
- Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
7+
- Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
8+
- La función retorna el número de veces que se ha impreso el número en lugar de los textos.
9+
10+
Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
11+
Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
12+
*/
13+
//EJERCICIO:
14+
/* - Crea ejemplos de funciones básicas que representen las diferentes
15+
posibilidades del lenguaje:
16+
Sin parámetros ni retorno, con uno o varios parámetros, con retorno... */
17+
18+
//funcion sin parametros
19+
function functionWithoutParamsAndReturns(){
20+
21+
}
22+
//funcion con parametros
23+
function functionWithParams(name:string ='soy un parametro'){
24+
}
25+
//funcion con retorno
26+
function functionWithReturn(x:number){
27+
x = 1;
28+
return x;
29+
}
30+
//funciones dentro de funciones
31+
function getIntegerRandom(min:number=1, max:number=5):number {
32+
//funciones ya definidas por el lenguaje -> random()
33+
return Math.floor(Math.random() * (max - min + 1)) + min;
34+
}
35+
//funciones flecha
36+
const functionWordUpperCase = (word:string='pronto sere grande') => word.toUpperCase();
37+
// - Pon a prueba el concepto de variable LOCAL y GLOBAL.
38+
const enum GlobalVars {Global='estoy en todo!'};
39+
function testGlobalScope(){
40+
GlobalVars.Global // access to global
41+
function testToLocalScoope(){
42+
let local = 'this is a local var!'
43+
}
44+
return{local:this.local,global:GlobalVars.Global}; //test fail dont exist local in this scoope
45+
}
46+
async function getData(){//funciones asincronas
47+
const data = await fetch('https://dragonball-api.com/api/characters/1')
48+
return await data.json()
49+
}
50+
const consoles:{[key:string]:any} = {
51+
'funciones vacias': functionWithoutParamsAndReturns,
52+
'funciones con parametros': functionWithParams,
53+
'funciones con retorno': functionWithReturn,
54+
'funciones dentro de funciones y ya definidas por el lenguaje': getIntegerRandom,
55+
'funciones flecha': functionWordUpperCase,
56+
'funcion de scoope global y local':testGlobalScope,
57+
'funcion asincrona':getData
58+
}
59+
for (const result in consoles){
60+
console.log(consoles[result](),'->',result,'\n')
61+
}
62+
// DIFICULTAD EXTRA (opcional):
63+
// Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
64+
(function twoParamStringToNumber(one:string='fizz',two:string='buzz'){
65+
66+
let start:number = 1;
67+
let stop:number = 100;
68+
let total:number = 0;
69+
// - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
70+
while(start<=stop){
71+
let response:string = '';
72+
// - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
73+
if(start%3==0 && start%5==0)
74+
response =one+two
75+
// - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
76+
if(start%3==0 && !response)
77+
response = one
78+
// - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
79+
if(start%5==0 && !response)
80+
response= two
81+
// - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
82+
!response ? total++ : ''
83+
console.log(!response? start:response,'\n')
84+
start++;
85+
}
86+
return total
87+
})()

0 commit comments

Comments
 (0)