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

119
Vistas
¿Cómo puedo hacer coincidir los elementos de mi matriz con los elementos de mi objeto?

Tome la siguiente estructura de datos

 report = { fraud_ids: [2, 3, 4, 15], } fraudTypes: { ACH: { fraud_category: "fraud", fraud_subcategory: "a", fraud_type_id: "4", }, 'Account takeover': { fraud_category: "misc", fraud_subcategory: "a", fraud_type_id: "2", }, 'Advance fee': { fraud_category: "fraud", fraud_subcategory: "b", fraud_type_id: "8", }, 'Against Financial Institution Customer(s)': { fraud_category: "cyber", fraud_subcategory: "b", fraud_type_id: "15", }, 'Against Financial Institution(s)': { fraud_category: "cyber", fraud_subcategory: "a", fraud_type_id: "78", }, 'Alters or cancels transaction to avoid BSA recordkeeping requirement': { fraud_category: "structuring", fraud_subcategory: "a", fraud_type_id: "3", }, }

Quiero hacer coincidir el objeto de tipo de fraude con el número correcto en la matriz por fraude_tipo_id. Y cuando encuentro una coincidencia, solo quiero devolver la clave del objeto.

Entonces, usando el ejemplo anterior, devolvería ['Account takeover', 'Alters or cancels transaction to avoid BSA recordkeeping requirement', 'ACH', Against Financial Institution Customer(s)']

Escribí la siguiente lógica y, para mi sorpresa, obtuve una matriz de cuatro elementos que devuelven indefinidos.

 const x = report.fraud_ids.map(id => { Object.keys(fraudTypes).map(fraudDescription => { if (parseInt(fraudTypes[fraudDescription].fraud_type_id, 10) === id) { return true; } }); });

Esperaba que esto devolviera los cuatro objetos coincidentes y luego sé que tengo que escribir lógica adicional solo para devolver las claves. ¿Qué estoy haciendo mal?

Consulte el código Sandbox .

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

0

No está devolviendo nada desde la primera devolución de llamada, ni .map es el método interno correcto; en su lugar, use .find para encontrar la clave con la ID coincidente.

 report={fraud_ids:[2,3,4,15],fraudTypes:{ACH:{fraud_category:"fraud",fraud_subcategory:"a",fraud_type_id:"4"},"Account takeover":{fraud_category:"misc",fraud_subcategory:"a",fraud_type_id:"2"},"Advance fee":{fraud_category:"fraud",fraud_subcategory:"b",fraud_type_id:"8"},"Against Financial Institution Customer(s)":{fraud_category:"cyber",fraud_subcategory:"b",fraud_type_id:"15"},"Against Financial Institution(s)":{fraud_category:"cyber",fraud_subcategory:"a",fraud_type_id:"78"},"Alters or cancels transaction to avoid BSA recordkeeping requirement":{fraud_category:"structuring",fraud_subcategory:"a",fraud_type_id:"3"}}}; const x = report.fraud_ids.map(id => ( Object.keys(report.fraudTypes).find(fraudDescription => Number(report.fraudTypes[fraudDescription].fraud_type_id) === id) )); console.log(x);

about 4 years ago · Juan Pablo Isaza Denunciar

0

No sé si esto es lo que quieres, pero ahí va.

 const selectedFrauds = report.fraud_ids.map((id, index) => { return( Object.values(fraudTypes).map((fraud, idx) => { return id === +fraud.fraud_type_id ? fraud : ""; }) ) }) const cleanSelectedFrauds = selectedFrauds.map((el) => { return el.filter((innerEl) => { if(innerEl) { return innerEl } }) }); console.log(cleanSelectedFrauds)

Esto devolverá la siguiente matriz:

 [ [ { fraud_category: 'misc', fraud_subcategory: 'a', fraud_type_id: '2' } ], [ { fraud_category: 'structuring', fraud_subcategory: 'a', fraud_type_id: '3' } ], [ { fraud_category: 'fraud', fraud_subcategory: 'a', fraud_type_id: '4' } ], [ { fraud_category: 'cyber', fraud_subcategory: 'b', fraud_type_id: '15' } ] ]
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