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

115
Vistas
cómo agregar una propiedad en el objeto dentro de la matriz del objeto si coincide con la identificación

Soy un novato en angular, me enfrento a un problema si alguien me ayuda, entonces será apreciable. Tengo una variedad de objetos como los siguientes.

 signals = [{ 'signalID': '123' },{ 'signalID': '233' },{ 'signalID': '333' },{ 'signalID': '433' },{ 'signalID': '533' },{ 'signalID': '633' },{ 'signalID': '733' }]

Tengo un objeto como el siguiente

 signalOrder = { 333:1, 433:2, 533:3 }

Quiero agregar una propiedad a la matriz de señales como orderNo si SignalId coincide con el objeto SignalOrder; de lo contrario, orderNo debería ser nulo. Resultado esperado :

 signals = [{ 'signalID': '123', 'orderNo':null },{ 'signalID': '233', 'orderNo':null },{ 'signalID': '333', 'orderNo':1 },{ 'signalID': '433', 'orderNo':2 },{ 'signalID': '533', 'orderNo':3 },{ 'signalID': '633', 'orderNo':null },{ 'signalID': '733', 'orderNo':null }]

Espero que funcione con la función de mapa de javascript, pero no sé cómo usarlo.

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

0

Puedes hacerlo como:

 let signals = [{'signalID': '123'},{'signalID': '233'},{'signalID': '333'},{'signalID': '433'},{'signalID': '533'},{'signalID': '633'},{'signalID': '733'}]; let signalOrder = {333:1,433:2,533:3} let mapped = signals.map(x=>{ return { signalID:x.signalID, orderNo:signalOrder[x.signalID] } }) console.log(mapped)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar Array.map() para crear el resultado que desea. Para cada elemento de señal, buscaremos el número de pedido en el objeto orderNo . Si no está presente, lo estableceremos en nulo.

 const signals = [{ 'signalID': '123' },{ 'signalID': '233' },{ 'signalID': '333' },{ 'signalID': '433' },{ 'signalID': '533' },{ 'signalID': '633' },{ 'signalID': '733' }]; const signalOrder = { 333:1, 433:2, 533:3 } const result = signals.map(({signalID}) => ({ signalID, orderNo: signalOrder[signalID] || null })) console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto no tiene nada que ver con Angular o Typescript. Podría resolverse con los métodos Vanilla JS Array.

Aquí hay un método que usa Array#map , sintaxis extendida , prueba falsa usando OR || . Intentar signalOrder[signal.signalID] devolvería undefined para propiedades no disponibles, lo cual es falso. En estos casos, se usaría null .

Prueba lo siguiente

 const signals = [{ 'signalID': '123' },{ 'signalID': '233' },{ 'signalID': '333' },{ 'signalID': '433' },{ 'signalID': '533' },{ 'signalID': '633' },{ 'signalID': '733' }] const signalOrder = { 333:1, 433:2, 533:3 } const result = signals.map(signal => ({ ...signal, orderNo: signalOrder[signal.signalID] || null })); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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