Quiero encontrar la conexión de ids con la ayuda de la conexión de nombre.
estos son mis elementos contenedores
const TotalNodes = [ {id : 1, name : "apple"}, {id : 2 , name : "banana"}, {id : 3 , name : "orange"}, {id : 4 , name : "lamon"}, {id : 5 , name : "suger"}, {id : 6 , name : "salt"} ]esta es mi matriz de referencia
const NodesConnection = [ {source : "suger" , target : "salt"}, {source : "apple" , target : "orange"} ]esta es la salida final
const NodesConnectionWithIds = [ {source : 5 , target : 6}, {source : 1 , target : 3} ]cualquier ayuda es muy apreciable
Aquí hay una función que hace el truco:
/** * * @param {{id: number, name: string}[]} nodes * @param {{source: string, target: string}[]} connections * @returns {{source: number, target: number}[]} */ function matchNodes(nodes, connections) { return connections.map((connection) => { const source = nodes.find((node) => node.name === connection.source); const target = nodes.find((node) => node.name === connection.target); return { source: source.id, target: target.id, }; }); } console.log(matchNodes(TotalNodes, NodesConnection));