es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir datos JSON anidados en una lista separada por comas con javascript.

var datos =  [
      {
        nombre: "nombreproducto",
        id: "1356",
        precio: "0.00",
        categoría: "Salud",
        posición: "1",
        lista: "Nuevos Productos",
        niveldestock: "20",
        marca: "Salud"
      },
      {
        nombre: "nombreproducto2",
        id: "5263",
        precio: "0",
        categoría: "Cabello",
        posición: "2",
        lista: "Nuevos Productos",
        niveldestock: "",
        marca: "Cabello"
      },
      {
        nombre: "nombreproducto3",
        id: "7473",
        precio: "0.00",
        categoría: "piel",
        posición: "3",
        lista: "Nuevos Productos",
        niveldestock: "10",
        marca: "piel"
      },


     ]

Tengo datos de varios productos en un orden anidado, el producto podría ser hasta n.

Pero quiero estos datos en valores separados por comas como una lista para que pueda hacerlos más fáciles de analizar.

Como esto.

Producto1: "nombreproducto",
PrecioProducto1: 0.00,
IdProducto1: "1356",
MarcaProducto1: "salud", 
NivelDeStockProducto1: "20",
Producto2: "nombreproducto2",
PrecioProducto2: 0,
IdProducto2: "5263",
MarcaProducto2: "cabello",
NivelDeStockProducto2: "",
Producto3: "nombreproducto3",
PrecioProducto3: 0.00,
IdProducto3: "7473",

Los detalles del producto deben mostrarse fuera del bucle anidado.

Podemos separar claves y valores con la función map. Pero como todos los datos de los productos están en el mismo formato, estoy confundido acerca de cómo funcionaría la función map aquí.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir los datos anidados en valores separados por comas como una lista, podemos recorrer la matriz de objetos utilizando un bucle forEach y luego crear nuevas parejas clave-valor para cada producto utilizando literales de plantillas y el método object.assign. Aquí tienes un ejemplo de código:

    let newList = '';
    
    data.forEach((producto, indice) => {
      const i = indice + 1;
      const nombre = `Producto${i}`;
      const precio = `${nombre}Precio`;
      const id = `${nombre}id`;
      const marca = `${nombre}marca`;
      const nivelExistencias = `${nombre}nivelExistencias`;
    
      const valores = {
        [nombre]: `"${producto.nombre}"`,
        [precio]: producto.precio,
        [id]: `"${producto.id}"`,
        [marca]: `"${producto.marca}"`,
        [nivelExistencias]: `"${producto.nivelExistencias}"`
      };
    
      newList += ` ${Object.values(valores).join(', ')} `;
    });
    
    console.log(newList);
    

    Este código recorrerá cada elemento en la matriz y creará un conjunto único de parejas clave-valor para cada producto utilizando literales de plantillas. La lista resultante contendrá todos los valores separados por comas para cada producto en una sola cadena.

Comments are closed.