Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

254
Vistas
Cómo crear un nuevo constructor con cada elemento de mi archivo Json. [Javascript]

Básicamente este es mi archivo Json:

 [ { "id": 9, "nombre": "ProductoDeJson4", "precio": 15000, "stock": 0, "img": "" }, { "id": 10, "nombre": "ProductoDeJson5", "precio": 15000, "stock": 0, "img": "" } ]

Esta es mi clase:

 class Producto { constructor(id, nombre, precio, stock) { this.id = id; this.nombre = nombre; this.precio = precio; this.stock = stock; } sumaIVA() { this.precio *= 1.21; } aumentarPrecio() { if (aumentoPrecios < 1) { this.precio = this.precio * aumentoPrecios + this.precio; } else { this.precio *= aumentoPrecios; } } }

Y quiero hacer esto dinámicamente con los datos de mi Json. Porque quiero aplicar la función "aumentarPrecio()" a cada uno.

 const producto1 = new Producto(1, "Grasa", 400, 1); const producto2 = new Producto(2, "Desengrasante", 1000, 1); const productos = [ producto1, producto2, ];

En este momento estoy tratando de hacerlo así, pero no funciona. El nuevo Producto se está creando pero las funciones de la clase no funcionan. Creo que es porque no estoy creando una nueva constante para cada elemento del Json. Pero no sé cómo hacerlo dinámicamente.

 async function obtenerProductos() { const response = await fetch("productos.json"); return await response.json(); } let arrayProductos = obtenerProductos(); //Agrego productos del JSON al array de productos (falta agregarle los métodos o transformar cada uno en un new Producto) arrayProductos.then((el) => { console.log(el); el.forEach((el) => { console.log(el["nombre"]); const productosJson = new Producto( el["id"], el["nombre"], el["precio"], el["stock"] ); productos.push(productosJson); console.log("elemento pusheado"); }); }); //Método Aumentar precio productos, luego de tener los productos listos en el array productos.forEach((listaProductos) => { setTimeout(() => { listaProductos.aumentarPrecio(); console.log("precios aumentados"); }, 1000); });

Por favor ayúdame, jaja. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Estás tratando de crear objetos dinámicamente dentro de un bucle, por lo que puedo decir.

Este enlace puede ser lo que estás buscando.

Tldr:

  1. Cree una lista vacía que guardará los objetos recién creados
  2. Recorra su json como lo hace ahora pero con un contador i y extraiga los datos para el objeto actual
  3. Agregue cada objeto a su lista, por ejemplo objects[i] = new Producto(1, "Grasa", 400, 1); (Cuidado aquí, ya que no le está dando ningún nombre a sus objetos, serán llamados por object[i].function )
  4. llame a su función después o durante la adición de los objetos a través de object[i].aumentarPrecio()

En otra nota: probablemente no debería declarar los objetos como const en su código y podría chocar con su declaración fuera de clase de aumentoPrecios .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda