Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

143
Views
¿Cómo puedo almacenar datos en una matriz de JavaScript para que pueda almacenarse en el almacenamiento local?

Estoy tratando de construir una tienda web básica y estoy buscando una forma de almacenar datos que ya tengo en una hoja de Excel en una matriz de JavaScript para poder almacenarlos en el almacenamiento local si el comprador hace clic en "Agregar al carrito", por ejemplo: Tengo estos datos aquí mismo:

['Hoodie','Purple','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (1).jpg']

['Hoodie','Light Blue','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (2).jpg']

['Hoodie','Green','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (3).jpg']

como puedes ver, es el tipo de ropa, color, descripción, precio y fuente de la imagen

¿Cómo puedo almacenar esto en una matriz de JavaScript para poder crear una función que, al hacer clic en un botón, agregue el elemento específico en el almacenamiento local?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En primer lugar... desde el punto de vista de la estructura de datos, su solución es: interesante

 ['Hoodie','Purple','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (1).jpg'] ['Hoodie','Light Blue','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (2).jpg'] ['Hoodie','Green','cotton authentic',' Only £39.99','images/items/hoodies/hoodie (3).jpg']

En general, en una matriz, desea tener varias cosas que sean todas del mismo tipo. Sí, aquí cada sudadera con capucha se representa como una matriz... y todos los elementos de cada matriz son cadenas... pero cada cadena representa un tipo de cosa completamente diferente.

Realmente, deberías usar objetos para guardar las sudaderas con capucha:

 { type: 'Hoodie', color: 'Purple', material: 'cotton authentic', price: '£39.99', image: 'images/items/hoodies/hoodie (1).jpg' }

Ahora tienes una sola cosa que tiene atributos específicos, cada uno con un valor

Para mostrar todas sus sudaderas con capucha, tiene su matriz... pero ahora carga esa matriz con esos objetos en lugar de tener matrices separadas

 var hoodieArray = [{ type: 'Hoodie', color: 'Purple', material: 'cotton authentic', price: '£39.99', image: 'images/items/hoodies/hoodie (1).jpg' }, { type: 'Hoodie', color: 'Light Blue', material: 'cotton authentic', price: '£39.99', image: 'images/items/hoodies/hoodie (2).jpg' }, { type: 'Hoodie', color: 'Green', material: 'cotton authentic', price: '£39.99', image: 'images/items/hoodies/hoodie (3).jpg' }]

Ahora, tiene una forma de almacenar, dentro de una sola clave en localStorage, la matriz de objetos separados, cada uno con su lista de atributos simplemente pasando JSON.stringify(hoodieArray)

about 4 years ago · Juan Pablo Isaza Report

0

Si tiene la matriz en números y desea limpiarlos en una matriz de objetos.

Por ejemplo, digamos que tiene matrices como las siguientes:

 let allArray = [ ['Hoodie', 'Purple', 'cotton authentic', ' Only £39.99', 'images/items/hoodies/hoodie (1).jpg'], ['Hoodie', 'Light Blue', 'cotton authentic', ' Only £39.99', 'images/items/hoodies/hoodie (2).jpg'], ['Hoodie', 'Green', 'cotton authentic', ' Only £39.99', 'images/items/hoodies/hoodie (3).jpg'] ]

siempre que esté seguro de la posición de cada elemento en la matriz secundaria, el código a continuación transformará todo en una matriz de objetos.

 allArray.forEach((element, index) => { let obj = {} obj.type = element[0] obj.color = element[1] obj.material = element[2] obj.price = element[3] obj.image = element[4] allArray[index] = obj })

puedes echar un vistazo a lo que obtienes en la consola

 console.log(allArray)

entonces, puede agregar la matriz reformada al almacenamiento local de esta manera:

 localStorage.setItem("mycart", JSON.stringify(allArray))

Sin embargo, en un escenario ideal, los artículos se agregan al carrito uno a la vez. Para agregar un artículo a la vez, puede escribir una función para agregar un artículo al carrito y otra para obtener artículos del carrito como se indica a continuación

 addToCart(item) { let items = getCartItem() items = items == null ? [] : items let found = items.find(x => x.somethingUnique == item.somethingUnique) if (found == null || undefined) { items.push(item) localStorage.setItem("mycart", JSON.stringify(items)) return true; } return false; }

Nota

 let found = items.find(x => x.somethingUnique == item.somethingUnique)

Reemplace somethingUnique con cualquier cosa que sea única para cada objeto, como ID , etc. Esto es para verificar si un elemento ya existe en el carrito y, por lo tanto, evita duplicados con el código.

 getCartItem() { let item = localStorage.getItem("mycart") item = item == null || undefined ? null : JSON.parse(item) return item; }

Espero que esto ayude.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!