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

492
Vistas
Obteniendo "Error fatal en, línea 0 # Error fatal de tamaño no válido de JavaScript 178414678" para un bucle for anidado

Así que tengo este código Javascript simple en el que comparo los artículos del carrito almacenados en la base de datos con los nuevos artículos del carrito enviados por el cliente. Pero recibo este nuevo error que nunca antes había visto:

 # # Fatal error in , line 0 # Fatal JavaScript invalid size error 178414678 # # # #FailureMessage Object: 000000DCF17BE620 1: 00007FF7F50A401F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+112511 2: 00007FF7F4FC116F v8::CFunctionInfo::HasOptions+7055 3: 00007FF7F5C97302 V8_Fatal+162 4: 00007FF7F5820C65 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArray+101 5: 00007FF7F56CA463 v8::internal::FeedbackNexus::ic_state+62771 6: 00007FF7F56E0FC0 v8::Message::GetIsolate+15840 7: 00007FF7F5555681 v8::internal::CompilationCache::IsEnabledScriptAndEval+26849 8: 00007FF7F59F34B1 v8::internal::SetupIsolateDelegate::SetupHeap+494417 9: 000001F9C44485C2

Lo que hace el código es verificar si la identificación del producto es la misma o no en ambas matrices. Si es así, simplemente reemplazará la unidad de artículo del carrito de la base de database cart item con la unidad client-sent cart item . Si no es así, simplemente empujará el client-sent cart item a la matriz database-stored cart items . Eso es todo lo que hace.

El código:

 const dbCartItems = [ { productID: '1233433', unit: 1 }, { productID: 'asfa34wr', unit: 2 } ]; const clientCartItems = [ { productID: 'dfhgdf46t3', unit: 4 }, { productID: 'hgfh566', unit: 1 }, { productID: '32523', unit: 1 } ]; for ( let i = 0; i < dbCartItems.length; i++ ) { for ( let j = 0; j < clientCartItems.length; j++ ) { if ( dbCartItems[ i ].productID === clientCartItems[ j ].productID ) { dbCartItems[ i ].unit = clientCartItems[ j ].unit; } else { dbCartItems.push( clientCartItems[ j ] ); } } } console.log( dbCartItems );

¿Alguien puede explicar qué está mal con el código que arroja este tipo de error que nunca antes había visto?

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

0

Está agregando continuamente a la misma matriz que resulta en un bucle infinito. Cree una nueva matriz y agréguele elementos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Toda tu lógica es incorrecta. Está utilizando bucles anidados y eso generaría resultados incorrectos incluso si usa una nueva matriz para almacenar elementos en ella.

Su código debería verse así:

 // get all product ids from dbCartItems array const dbCartItemsProductIds = dbCartItems.map(cartItem => cartItem.productID); for(let i=0;i<clientCartItems.length;i++) { const indexOfClientItemInDb = dbCartItemsProductIds.indexOf(clientCartItems[i].productID); // if clientCartItemProductId found in dbCartItemsProductIds if(indexOfClientItemInDb!== -1) { dbCartItems[indexOfClientItemInDb].unit = clientCartItems[i].unit; } else { dbCartItems.push(clientCartItems[i]); } }

Primero, obtenga todos los productIds de dbCartItems (para que coincidan con los productids de clientCartItems . Ahora, para cada clientCartItems , verifique si el id del producto del artículo está presente en dbCartItemsProductIds , luego cambie el número de unidades, de lo contrario, agregue el artículo a dbCartItems .

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