Dada la siguiente estructura de matriz:
{ url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C06", "C05"] }, { url: "www.site.com/somethingelse", ids: ["F21", "C12", "C05"] }
Estoy tratando de recorrer la matriz y encontrar todas las direcciones URL para cada identificación. Entonces, el resultado final agruparía las direcciones URL donde un valor de identificación tiene la misma dirección URL:
F20, por ejemplo, tendría www.site.com y www.site.com/something .
La estructura de datos terminaría siendo una matriz de objetos donde cada identificación tendría una matriz de direcciones URL en las que existe la identificación.
Comencé con un bucle for básico, pero me quedé con la mejor manera de recorrer y verificar la URL para cada valor de la matriz con la que está asociado y luego agrupar por ID.
for(id of ids){ console.log(id) }
El resultado final sería una lista de identificadores con todas las URL asociadas donde aparece ese identificador.
Puede recorrer la matriz de entrada y luego recorrer las identificaciones para cada elemento de entrada y seguir agregando direcciones URL para las identificaciones correspondientes. Por ejemplo
const input = [{ url: "www.site.com", ids: ["F20", "C10", "C05"] }, { url: "www.site.com/something", ids: ["F20", "C06", "C05"] }, { url: "www.site.com/somethingelse", ids: ["F21", "C12", "C05"] }] const output = {} input.forEach(obj=>{ const ids = obj.ids if(ids && ids.length>0){ ids.forEach(id=>{ if(!output[id]){ output[id] = [] } output[id].push(obj.url) }) } }) for(let id of Object.keys(output)){ console.log(`${id}:${JSON.stringify(output[id])}`) }