Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

121
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda