Skip to content

Commit 875ce42

Browse files
#3 - javascript
1 parent 7fbd318 commit 875ce42

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
//1 - Muestra ejemplos de creación de todas las estructuras soportadas por defecto en tu lenguaje.
2+
// en object lo valores se pasan por referencia y en primitivos por valor****
3+
4+
console.log(typeof null) //object, (e la teoria deberia ser null primitivo)***
5+
// objects
6+
console.log(typeof {}) //object : objeto
7+
console.log(typeof []) //object :array
8+
const set = new Set()
9+
console.log(typeof set) //object : añadir datos a la array
10+
11+
// cada constructor de las funciones se deriaba del contructor object pero es un objeto especial
12+
// function
13+
console.log(typeof function(){}) //function pero por detras es un objeto especial
14+
15+
//tipdos en un array
16+
let numbers = [1, 2, 3, 4];
17+
let letters = ['a', 'b', 'c', 'd'];
18+
let combined = ['abc', true, 'def', false];
19+
let users = [ //array de objetos
20+
{
21+
id: 1,
22+
name: 'Andres',
23+
subscribed: true
24+
},
25+
{
26+
id: 2,
27+
name: 'Brais',
28+
subscribed: false
29+
}
30+
];
31+
console.log('users', users);
32+
33+
//2- Utiliza operaciones de inserción, borrado, actualización y ordenación.
34+
35+
let frutas = ["Manzana", "Banana"];
36+
console.log(frutas.length); //2
37+
38+
frutas.push('uva') //inserción
39+
console.log(frutas + ' metodo push'); //[ 'Manzana', 'Banana', 'uva' ]
40+
frutas.pop() //borrado
41+
console.log(frutas + ' metodo pop'); //[ 'Manzana', 'Banana', ]
42+
43+
let mejoresCarros2023 = ["audi", "ferrari", "renol", "nisan", "honda"]
44+
console.log(mejoresCarros2023)
45+
mejoresCarros2023[2] = 'suzuki' //actualización
46+
console.log(mejoresCarros2023)
47+
48+
const numeros = [10, 21, 13, 45, 5, 26] //ordenación
49+
50+
const descNumeros = numeros.sort((a,b) => a > b ? -1 : 1) //[ 45, 26, 21, 13, 10, 5 ]
51+
console.log(descNumeros)
52+
53+
const asenNumeros = numeros.sort((a,b) => a > b ? 1 : -1) //[ 5, 10, 13, 21, 26, 45 ]
54+
console.log(asenNumeros)
55+
56+
//set
57+
// es una estructura de datos qe nos permite almacenar colecciones de datos especificamente que no se van a repetir
58+
console.log('-----------------set')
59+
const set1 = new Set()
60+
61+
set1.add(1)
62+
set1.add(2)
63+
set1.add(false)
64+
set1.add([1,5,6]) // guardado por valor - console.log(set1.has([1,5,6])) : false
65+
const arr = [1,5,6] //guardado por referencia
66+
set1.add(arr) // console.log(set1.has(arr)) : true
67+
set1.delete(false)
68+
69+
console.log(set1.has(arr))
70+
for( item of set1){
71+
console.log(item)
72+
}
73+
74+
//map
75+
console.log('-----------------map')
76+
const map = new Map()
77+
78+
map.set(1, 'lunes')
79+
map.set('2', 3)
80+
map.set(false, 10)
81+
console.log(map.has(1))
82+
console.log(map.size)
83+
map.delete(false)
84+
console.log(map.size)
85+
86+
for(item of map){
87+
console.log(item)
88+
}
89+
for(const [key, value] of map){
90+
console.log(key, value)
91+
}
92+
93+
console.log(map.get('2'))
94+
95+
96+
//3 EXTRA
97+
// Crea una agenda de contactos por terminal.
98+
// * - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
99+
// * - Cada contacto debe tener un nombre y un número de teléfono.
100+
// * - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
101+
// * los datos necesarios para llevarla a cabo.
102+
// * - El programa no puede dejar introducir números de teléfono no númericos y con más de 11 dígitos.
103+
// * (o el número de dígitos que quieras)
104+
// * - También se debe proponer una operación de finalización del programa.
105+
106+
107+
const readline = require("readline");
108+
109+
const rl = readline.createInterface({
110+
input: process.stdin,
111+
output: process.stdout,
112+
});
113+
114+
let agenda = {}
115+
116+
function miAgenda () {
117+
118+
119+
120+
rl.question("¿Qué operación quieres realizar? (buscar, insertar, actualizar, agenda, eliminar, salir): ", (operacion) => {
121+
switch (operacion) {
122+
case 'buscar':
123+
rl.question('¿nombre de contacto?', (nombre)=> {
124+
if(agenda[nombre]){
125+
console.log(`Nombre: ${nombre} Telefono: ${agenda[nombre]}`)
126+
miAgenda ()
127+
}else {
128+
console.log("Contacto no encontrado.");
129+
miAgenda ()
130+
}
131+
})
132+
miAgenda ()
133+
break;
134+
case 'insertar':
135+
rl.question('¿cuales el nombre?:', (nombre) =>{
136+
rl.question('¿cual es el telfono?:', (telefono) =>{
137+
if( !isNaN(telefono) && telefono.toString().length <= 11){
138+
139+
agenda[nombre] = telefono
140+
console.log("Contacto agrego correctamente.");
141+
miAgenda ()
142+
}else{
143+
console.log('Error, el telefono solo acepta numeros, hasta 11 digitos')
144+
miAgenda ()
145+
}
146+
})
147+
} )
148+
149+
150+
break;
151+
case 'actualizar':
152+
rl.question('nombre de contacto ', (nombre) => {
153+
if(agenda[nombre]){
154+
rl.question('introducel el nuevo numero de telefono',(telefono) => {
155+
agenda[nombre] = telefono
156+
console.log('se actualice exitosamente')
157+
miAgenda()
158+
})
159+
}else{
160+
console.log("Contacto no encontrado.");
161+
miAgenda ()
162+
}
163+
})
164+
console.log('actualizar')
165+
break;
166+
case 'eliminar':
167+
rl.question('Escriba el nombre de el contacto que se quiera eliminar',(nombre) => {
168+
if(agenda[nombre] ){
169+
delete agenda[nombre]
170+
console.log( 'fue eliminado eliminado' )
171+
miAgenda()
172+
}
173+
})
174+
break;
175+
case 'agenda':
176+
console.log(agenda)
177+
miAgenda()
178+
break;
179+
case 'salir':
180+
rl.close();
181+
console.log('saliendo de la agenda')
182+
break;
183+
184+
default:
185+
console.log('Error al leer su respuesta , eliga una opcion valida')
186+
miAgenda ()
187+
break;
188+
}
189+
190+
})
191+
192+
}
193+
194+
miAgenda()

0 commit comments

Comments
 (0)