Soluciones ejercicios objetos

/* crear un objeto que nos permita almacenar la información de un producto,
 que consiste en un nombre, una referencia (ambas de tipo string) 
 y un precio y un stock (ambas de tipo numérico). */

let producto = {
    nombre: "Tuerca",
    referencia: "TRC45",
    precio: 10,
    stock: 30
}
console.log(producto)

// Crear un array con 3 elementos
let productos = [{
    nombre: "Tuerca",
    referencia: "TRC45",
    precio: 100,
    stock: 30
}, {
    nombre: "Clavo",
    referencia: "CLV",
    precio: 20,
    stock: 40
}, {
    nombre: "Arandela",
    referencia: "ARL67",
    precio: 30,
    stock: 50
}]
console.log(productos)

let inventario = [];
inventario.push({
    nombre: "Tuerca",
    referencia: "TRC45",
    precio: 100,
    stock: 30
});
inventario.push({
    nombre: "Tuerca",
    referencia: "TRC45",
    precio: 10,
    stock: 30
});
inventario.push({
    nombre: "Tuerca",
    referencia: "TRC45",
    precio: 10,
    stock: 30
});

// Con constructores
function Producto(nombre, referencia, precio, stock) {
    this.nombre = nombre;
    this.referencia = referencia;
    this.precio = precio;
    this.stock = stock;
}

let tienda = [new Producto("Aa", "BB", 1, 2),
new Producto("CC", "DD", 3, 4),
new Producto("EE", "FF", 5, 6),
];
console.log(tienda)

// Para sumar el stock tengo que recorrer el array

let sumaStock = 0;
// Manera clásica
for (let i = 0; i < productos.length; i++) {
    sumaStock += productos[i].stock; // accedo a la propiedad stock del producto
}
console.log(sumaStock)

sumaStock = 0;
// con for of
for (let p of productos) {
    sumaStock += p.stock;
}
console.log(sumaStock)

// con foreach
sumaStock = 0;
productos.forEach(function (prod) {
    sumaStock += prod.stock;
})
console.log(sumaStock);

function getSumaStock(productos) {
    sumaStock = 0;
    productos.forEach(function (prod) {
        sumaStock += prod.stock;
    });
    return sumaStock;
}

// Inicializo con el primero porque no sé que valores me voy a encontrar
let masCaro=productos[0];
for (let p of productos) {
    if (p.precio>masCaro.precio){
        masCaro=p;
    }
}
console.log(masCaro);
// Esto es más fácil de programar pero es mucho más costoso computacionalmente
productos.sort((a,b)=>a.precio-b.precio);
console.log(productos)
console.log(productos.at(-1))

productos.forEach(function (prod) {
    prod.stock+=10;
});

console.log(productos);

Publicado por

Avatar del usuario

Juan Pablo Fuentes

Formador de programación y bases de datos