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

110
Views
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 answers
Answer question

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 Report

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 Report

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 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!