Estoy tratando de imprimir una lista de personas que comparten la misma dirección y el mismo nombre de empresa. Mi matriz:
persons = [ { address: "Wallstreet", company: "ABC", name: "John", telephoneNr: "12345" }, { address: "Wallstreet", company: "ABC", name: "Rick", telephoneNr: "12857" }, { address: "Wallstreet", company: "ABC", name: "Eva", telephoneNr: "38665" } ]Estoy usando la función de mapa, pero quiero imprimir la dirección y el nombre de la empresa solo una vez, ya que todos comparten la misma dirección y la misma empresa. ¿Cómo puedo omitir la impresión de direcciones y el nombre de la empresa por segunda, tercera y n vez en el ciclo?
{persons.map((item, index) => { return ( <p> {item.address} </p> <p> {item.company} </p> <p> {item.name}: {item.telephoneNr} </p> )})}Mi impresión se ve así:
Wallstreet ABC John:12345 Wallstreet ABC Rick:12857 Wallstreet ABC Eva: 38665Y quiero que mi impresión se vea así:
Wallstreet ABC John:12345 Rick:12857 Eva: 38665Puede usar Objeto de mapa Objeto de mapa
const map = new Map() map.set([address, company].toString(), [{name, telephoneNr}])luego, debe obtener el valor y configurarlo con el nuevo elemento y, si la clave es la misma, se asignará al mismo par clave-valor y, después de eso, puede iterar el objeto del mapa e imprimirlo
Actualice este código:
{persons.map((item, index) => { return ( if (index === 0) { <p> {item.address} </p> <p> {item.company} </p> <p> {item.name}: {item.telephoneNr} </p> } else { <p> {item.name}: {item.telephoneNr} </p> } )})}Su salida se verá así:
Wallstreet ABC John:12345 Rick:12857 Eva: 38665