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

172
Visualizações
sort and render list contact by first letter alphabet

I have list contact like this, i try to find anwser my question in SOF but have not, can u guys help me? thank you

export const rows = [
  {
    id: 1,
    name: 'Snow',
    email: 'Jon',
    contact: 35,
    avatar: ''
  },
  { id: 2, name: 'Lannister', email: 'Cersei', contact: 42,
    avatar: '' },
  { id: 3, name: 'Lannister', email: 'Jaime', contact: 45,
    avatar: '' },
  { id: 4, name: 'Stark', email: 'Arya', contact: 16,
    avatar: '' },
  { id: 5, name: 'Targaryen', email: 'Daenerys', contact: null,
    avatar: '' },
  { id: 6, name: 'Melisandre', email: null, contact: 150,
    avatar: '' },
  { id: 7, name: 'Clifford', email: 'Ferrara', contact: 44,
    avatar: '' },
  { id: 8, name: 'Frances', email: 'Rossini', contact: 36,
    avatar: '' },
  { id: 9, name: 'Roxie', email: 'Harvey', contact: 65,
    avatar: '' },
  { id: 11, name: 'Snow', email: 'Jon', contact: 35 ,
    avatar: ''},
  { id: 12, name: 'Lannister', email: 'Cersei', contact: 42,
    avatar: '' },
  
];




and i want render it like this:

enter image description here

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

  const rows = [
    {
      id: 1,
      name: "Snow",
      email: "Jon",
      contact: 35,
      avatar: "",
    },
    { id: 2, name: "Lannister", email: "Cersei", contact: 42, avatar: "" },
    { id: 3, name: "Lannister", email: "Jaime", contact: 45, avatar: "" },
    { id: 4, name: "Stark", email: "Arya", contact: 16, avatar: "" },
    { id: 5, name: "Targaryen", email: "Daenerys", contact: null, avatar: "" },
    { id: 6, name: "Melisandre", email: null, contact: 150, avatar: "" },
    { id: 7, name: "Clifford", email: "Ferrara", contact: 44, avatar: "" },
    { id: 8, name: "Frances", email: "Rossini", contact: 36, avatar: "" },
    { id: 9, name: "Roxie", email: "Harvey", contact: 65, avatar: "" },
    { id: 11, name: "Snow", email: "Jon", contact: 35, avatar: "" },
    { id: 12, name: "Lannister", email: "Cersei", contact: 42, avatar: "" },
  ];

const sortedArray = rows.sort((current, next) => current.name > next.name ? 1 : next.name > current.name ? -1 : 0 )

console.log(sortedArray)

about 4 years ago · Juan Pablo Isaza Relatório

0

I am not sure what your exact question is, but maybe I can give you a starting point:

const grouped = rows.reduce(
  (groupedRows, row) => {
     const firstLetter = row.name.slice(0,1);
     return {
       ...groupedRows,
       [firstLetter]: [...(groupedRows[firstLetter] || []), row]
     }  
  }, {}
)

This will give you an Object like

{ L: [ 
       { id: 2, name: 'Lannister', email: 'Cersei', contact: 42, avatar: '' },
       { id: 3, name: 'Lannister', email: 'Jaime', contact: 45, avatar: '' } 
     ],
  S: [ 
       { id: 4, name: 'Stark', email: 'Arya', contact: 16, avatar: '' },
     ]
  // etc.
}

Then use Object.entries(grouped) to turn this into a sequence that you can iterate over and build your UI.

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