Saltar al contenido principal

Ejercicios Objetos

1. Ejercicios básicos objetos

Ejercicio 1.1

Dado el siguiente objeto coche, añade la propiedad "color" y asígnale el valor "amarillo". Después muestra por pantalla el texto "Tengo un Audi de color amarillo", pero accediendo a los valores "Audi" y "amarillo" por su propiedad.

let coche = {
marca: "Audi",
km: 12000,
modelo: "Q2"
};

Ejercicio 1.2

Dado el objeto lista_compra, muestra con un bucle for...in todos los productos junto a su precio.


let lista_compra = {
huevos: 3,
leche: 2,
manzana: 0.5,
miel: 3,
queso: 2.5
}

Ejercicio 1.3

Dado el mismo objeto del ejercicio 1.2, devuelve la suma total de los precios de la lista de la compra.

Pista: usa una variable suma donde vayas acumulando los precios de los productos.

Ejercicio 1.4

Dada la misma lista_compra del ejercicio anterior, súmale 0.5 a todos los precios.

Ejercicio 1.5 - EXTRA

Dado un objeto sueldos con los sueldos de los empleados. Sube los sueldos un 5% a todos hasta que todos tengas un sueldo superior a 2000€.

PISTA: bucle while


let sueldos = { Rosa: 1500, Maria: 1700, Marta: 1900 };

2. Ejercicios objetos y arrays

Ejercicio 2.1

Dado el objeto notas con las notas de varios alumnos en forma de array, muestra las notas de "pepe". Luego muestra cuál fue su primera nota.


let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

Ejercicio 2.2

Dado el mismo objeto notas, obtén la media de las notas de "alex".

TIP: la nota media se calcula como la suma de las notas dividido por la longitud del array.


let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

Ejercicio 2.3

Ahora añade a todos los alumnos la nota 10 al final de sus notas.


let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

`

Ejercicio 2.4

Dada la lista_ingredientes, muestrame el precio de todos ellos como la frase "Aceite cuesta 3€".


let lista_ingredientes = [{ingrediente: "aceite", precio : 3}, {ingrediente: "sal", precio : 8}, {ingrediente: "miel", precio: 7}];


Ejercicio 2.5

Dado el mismo objeto lista_ingredientes y además el array lista_compra con los ingredientes que voy a comprar, suma el precio únicamente de aquellos ingredientes que están en mi lista de la compra.

let lista_compra = ["aceite","miel"];

// solución: sumar solo el precio del aceite y de la miel = 10

3. Ejercicios objetos anidados

Ejercicio 3.1

Dado el objeto cliente, muestra los servicios que ha solicitado y cuándo.

La solución debe ser algo como:

Servicios del cliente Maria Jose:
- spa - turno: mañana
- cena - turno: noche
- tour - turno: tarde

let cliente = {
nombre : "Maria José",
habitacion: 283,
servicios:
{
'spa': 'mañana',
'cena': 'noche',
'tour': 'tarde'
}
}

Ejercicio 3.2

Dado el objeto hotel que contiene los posibles servicios del hotel y su precio, y el objeto huesped, devuelve el importe que debe pagar el huesped por los servicios solicitados.

let hotel = { 
servicios : {
"habitacion": 120,
"suite": 160,
"duplex": 200
}
}

let huesped = {
nombre : "Maria",
reservas : {
alojamiento : ["suite", "habitacion"]
}
}


Soluciones

1.1

let coche = {
marca: "Audi",
km: 12000,
modelo: "Q2"
};

// Añadir propiedad color

coche.color = "amarillo";

// Mostrar mensaje
console.log(`Tengo un ${coche.marca} de color ${coche.color}`);

// o equivalente
console.log("Tengo un " + coche.marca + " de color " + coche.color);


1.2


let lista_compra = {
huevos: 3,
leche: 2,
manzana: 0.5,
miel: 3,
queso: 2.5
}


for (let producto in lista_compra){
console.log('Producto: ' + producto + ' - Precio: ' + lista_compra[producto]);
}

1.3


let lista_compra = {
huevos: 3,
leche: 2,
manzana: 0.5,
miel: 3,
queso: 2.5
}

let suma = 0; // iniciclizo la suma a 0 porque aun no he empezado a sumar
for (let producto in lista_compra){
console.log('Producto: ' + producto + ' - Precio: ' + lista_compra[producto]);
suma += lista_compra[producto]; // Para cada producto, sumo su precio a la suma

}

console.log(suma); // 11

1.4


let lista_compra = {
huevos: 3,
leche: 2,
manzana: 0.5,
miel: 3,
queso: 2.5
}

for (let producto in lista_compra){
lista_compra[producto] += 0.5;

}

// Resultado:
// let lista_compra = {
// huevos: 3.5,
// leche: 2.5,
// manzana: 1,
// miel: 3.5,
// queso: 3
// }

1.5 - EXTRA

let objetivo_conseguido = false;

while (!objetivo_conseguido){ // mientras no haya cumplido mi objetivo sigo subiendo sueldos
if (sueldos.Ana >= 2000 & sueldos.Luis >= 2000 & sueldos.Marta >= 2000){ // cuando todos los sueldos estén por encima de los 2000
objetivo_conseguido = true; // habré cumplido mi objetico
}else{
for (let persona in sueldos){ // mientras tanto recorro los sueldos de mis empleados
sueldos[persona] = sueldos[persona] * 1.05; // y les añado un 5%
}
}
};

console.log(sueldos);

2.1

let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

console.log(notas.pepe); // todas las notas
console.log(notas.pepe[0]); // la primera nota, ya que sabemos que es un array y podemos acceder a su índice

2.2

let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

let notas_alex = notas.alex; // [10,9,10,8]

// utilizando reduce()
let mediaAlex = notas_alex.reduce((suma, nota) => suma + nota, 0) / notas_alex.length;

// sin reduce()
let suma = 0;

for (let nota in notas_alex) {
suma += nota;
}

let mediaAlex = suma / notas_alex.length;

2.2

let notas = {
pepe: [6,7,8,2],
carlos : [3,4,1,2],
alex: [10,9,10,8]
}

for (let alumno in notas){ // recorremos todos los alumnos
notas[alumno].push(10); // al array de notas de ese alumno le añadimos un 10
}
console.log(notas);

// Resultado:
// let notas = {
// pepe: [6,7,8,2,10],
// carlos : [3,4,1,2,10],
// alex: [10,9,10,8,10]
// }

2.4

let lista_ingredientes = [{ingredinte: "aceite", precio : 3},  {ingrediente: "sal", precio1}, {ingredienre: "miel", precio: 7}];

for (let ing of lista_ingredientes){
console.log(`${ing.ingredientes} cuesta ${ing.precio}`)
}

2.5

let lista_ingredientes = [{ingrediente: "aceite", precio : 3},  {ingrediente: "sal", precio : 8}, {ingrediente: "miel", precio: 7}];
let lista_compra = ["aceite", "miel"];

let suma = 0;
for (let i of lista_compra){
// i : "acete", "miel"
for (let ing of lista_ingredientes){
// ing: {ingredinte: "aceite", precio : 3}, etc.
if (i == ing.ingrediente){
suma += ing.precio;
}
}
}

3.1

let cliente = {
nombre : "Maria José",
habitacion: 283,
servicios:
{
'spa': 'mañana',
'cena': 'noche',
'tour': 'tarde'
}
}

console.log("Servivios solicitados por el cliente" + cliente.nombre);
for (let s in cliente.servicios){ // recorro los servicios del cliente
// s = 'spa', 'cena', 'tour'
console.log(`- ${s} - turno: ${cliente.servicios[s]}`);
}

3.2

let hotel = { 
servicios : {
"habitacion": 120,
"suite": 160,
"duplex": 200
}
}

let huesped = {
nombre : "Maria",
reservas : {
alojamiento : ["suite", "habitacion"]
}
}


let total_pagar = 0;

for (let serv of huesped.reservas.alojamiento){ // Recorremos la lista de reservas de alojamiento del huesped (for...of)
// serv = "suite", "habitación"
for (let serv_hotel in hotel.servicios){ // Recorremos los servicios que ofrece el hotel
// serv_hotel = "habitacion", "suite", "duplex"
if (serv == serv_hotel){
total_pagar += hotel.servicios[serv_hotel];
}
}

}
console.log(total_pagar);