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

174
Vistas
Tengo un problema al ingresar datos en un objeto usando FOR

Tengo un objeto por el que quiero pasar usando el bucle FOR Porque quiero cambiar el objeto de acuerdo con mis necesidades

Aquí está mi objeto original.

Lo copié de console.log()

(7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]

 [ {Order: 14, Address: 100101, SKU: 'CJNSXZHL', CJ Quantity: '1', Store: 'go', …} {SKU: 'CJNSX', CJ Quantity: '1', CJ Product Name: 'bbb', __rowNum__: 2} {Order: 15, Address: 100102, SKU: 'CJNSXZN', CJ Quantity: '1', Store: 'go', …} {SKU: 'CJNS', CJ Quantity: '1', CJ Product Name: 'ddd', __rowNum__: 4} {Order: 16, Address: 100103, SKU: 'CJNSX', CJ Quantity: '1', Store: 'go', …} {SKU: 'CJNS', CJ Quantity: '1', CJ Product Name: 'fff', __rowNum__: 6} {Order: 17, Address: 100104, SKU: 'CJNSTX', CJ Quantity: 2, Store: 'go', …} ]

Ahora, lo que estoy tratando de hacer es verificar si, en cambio, yo en ORDEN tengo indefinido. Puede ver que en la primera fila está configurado en el segundo no y, si no, tome el valor que se encuentra en SKU en la segunda fila e insértelo en el lugar anterior de la matriz adjuntaré el código que escribí

 const arr = []; for ( let i=0 ; i <= items.length-1;i++) { try { if (items[i].Order !== undefined){ console.log(" have ",i) arr.push({ "CJ Order Number":items[i].Order, "Address":items[i].Address, "SKU":[items[i].SKU], }); } else if (items[i].Order === undefined){ console.log("dont have ",i) arr[i-1].SKU.push(items[i].SKU) } }catch (err){ console.log("err",i) } } console.log(arr)

Lo que sucede es que solo en la primera línea tiene éxito, pero en la tercera iteración se supone que debe ingresar a la segunda fila, no tiene éxito, aparece un error.

"Error de tipo: no se pueden leer las propiedades de undefined (leyendo 'SKU')"

Y lo extraño es que tiene éxito en la primera línea aquí El código de console.log()

Abrí la primera línea para que puedas ver el SKU que ingresó el valor de la siguiente línea

 (4) [{…}, {…}, {…}, {…}] 0: Address: 100101 CJ Order Number: 14 SKU: (2) ['CJNSXZHL', 'CJNSX'] [[Prototype]]: Object 1: {CJ Order Number: 15, Address: 100102, SKU: Array(1)} 2: {CJ Order Number: 16, Address: 100103, SKU: Array(1)} 3: {CJ Order Number: 17, Address: 100104, SKU: Array(1)} length: 4

También seguí paso a paso de cualquier integración

 have 0 1 'dont have' have 2 3 'dont have' err 3 have 4 5 'dont have' err 5 have 6
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

puedes hacerlo fácilmente con reduce

 const data = [{ Order: 14, Address: 100101, SKU: 'CJNSXZHL', 'CJ Quantity': '1', Store: 'go' }, { SKU: 'CJNSX', 'CJ Quantity': '1', 'CJ Product Name': 'bbb', __rowNum__: 2 }, { Order: 15, Address: 100102, SKU: 'CJNSXZN', 'CJ Quantity': '1', Store: 'go' }, { SKU: 'CJNS', 'CJ Quantity': '1', 'CJ Product Name': 'ddd', __rowNum__: 4 }, { Order: 16, Address: 100103, SKU: 'CJNSX', 'CJ Quantity': '1', Store: 'go' }, { SKU: 'CJNS', 'CJ Quantity': '1', 'CJ Product Name': 'fff', __rowNum__: 6 }, { Order: 17, Address: 100104, SKU: 'CJNSTX', 'CJ Quantity': 2, Store: 'go' } ] const result = data.reduce((res, item) => { if (item.Order) { return [...res, {...item, SKU:[]}] } const lastOrder = res[res.length - 1] res[res.length - 1].SKU = [...(lastOrder.SKU || []), item] return res }, []) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Con suerte, esto es lo que está tratando de hacer, podría intentar hacerlo de esta manera, aunque podría haber mejores soluciones.

 const arr = []; const items = [ { Order: 14, Address: 100101, SKU: "CJNSXZHL", CJ_Quantity: "1", Store: "go", }, { SKU: "CJNSX", CJ_Quantity: "1", CJ_Product_Name: "bbb", __rowNum__: 2 }, { SKU: "CJNSXZN", Order: 15, Address: 100102, CJ_Quantity: "1", Store: "go", }, { SKU: "CJNS", CJ_Quantity: "1", CJ_Product_Name: "ddd", __rowNum__: 4 }, { Order: 16, Address: 100103, SKU: "CJNSX", CJ_Quantity: "1", Store: "go" }, { SKU: "CJNS", CJ_Quantity: "1", CJ_Product_Name: "fff", __rowNum__: 6 }, { Order: 17, Address: 100104, SKU: "CJNSTX", CJ_Quantity: 2, Store: "go" }, ]; for (let i = 0, j = 1; i <= items.length - 1; i++) { try { if (items[i].Order) { arr.push({ "CJ Order Number": items[i].Order, Address: items[i].Address, SKU: [items[i].SKU], }); } else { arr[j-1].SKU.push(items[i].SKU); j++; } } catch (err) { console.log("err", err); } } console.log(arr);

about 4 years ago · Juan Pablo Isaza Denunciar

0

 let items = [{ Order: 14, Address: 100101, SKU: 'CJNSXZHL', 'CJ Quantity': '1', Store: 'go', }, { SKU: 'CJNSX', 'CJ Quantity': '1', 'CJ Product Name': 'bbb', __rowNum__: 2 }, { Order: 15, Address: 100102, SKU: 'CJNSXZN', 'CJ Quantity': '1', Store: 'go', }, { SKU: 'CJNS', 'CJ Quantity': '1', 'CJ Product Name': 'ddd', __rowNum__: 4 }, { Order: 16, Address: 100103, SKU: 'CJNSX', 'CJ Quantity': '1', Store: 'go' }, { SKU: 'CJNS', 'CJ Quantity': '1', 'CJ Product Name': 'fff', __rowNum__: 6 }, { Order: 17, Address: 100104, SKU: 'CJNSTX', 'CJ Quantity': 2, Store: 'go' }, ]; const arr = []; for (let i = 0; i <= items.length - 1; i++) { if (items[i].Order) { arr.push({ 'CJ Order Number': items[i].Order, Address: items[i].Address, SKU: [items[i].SKU], }); } else { arr[arr.length - 1].SKU.push(items[i].SKU); // the last element } } console.log(arr);
 Try this.

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