Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

253
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda