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

142
Vistas
La nueva asignación de propiedad al objeto conduce a un comportamiento extraño en NodeJS

En un proceso de entrevista reciente, me pidieron que escribiera código para una API. NodeJS , v16.14.0 .

Sin embargo, me encontré con un comportamiento muy extraño:

 module.exports = { findSomething: (data) => { const keys = Object.keys(data).sort(); let maxObj = null; let maxKey = null; for (let i = 0; i < keys.length; ++i) { let key = keys[i]; const currObj = data[key]; if (maxObj == null || currObj.prop > maxObj.prop) { maxObj = currObj; maxKey = key; } } // Attempt to assign a new property to the object: // Variant 1, causes odd behaviour. maxObj.maxKey = maxKey; // Variant 2, object copy - works OK. let newData = {...maxObj} newData.maxKey = maxKey; return newData; } }

Este cambio muy pequeño (Variante 1 en lugar de 2), no dio errores, sin embargo, hizo que la función se comportara de manera muy extraña. a veces produciendo resultados correctos y otras simplemente nada. Esto me llevó a perder un tiempo precioso y, finalmente, me quedé atónito al descubrirlo.

No tengo conocimiento de casos de tal comportamiento. Como quiero aprender de esto y mejorar, ¿sabe por qué podría suceder esto o si me estoy perdiendo algo obvio aquí? Sé que asignar una nueva propiedad a un objeto existente está bien en JavaScript, y todas mis variables estaban dentro del alcance del uso.

about 4 years ago · Juan Pablo Isaza
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