Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

236
Vistas
¿Cómo hacer que el nombre de los usuarios sea único agregando el número de ocurrencia?

Tengo una lista de usuarios:

 const users = [ { id: 1, name: "Leanne Graham", phone: "1-770-736-8031 x56442", }, { id: 2, name: "Ervin Howell", phone: "010-692-6593 x09125", }, { id: 3, name: "Leanne Graham", phone: "1-463-123-4447", }, { id: 4, name: "Leanne Graham", phone: "493-170-9623 x156", }, { id: 5, name: "Chelsey Dietrich", phone: "(254)954-1289", }, { id: 6, name: "Mrs. Dennis Schulist", phone: "1-477-935-8478 x6430", }, { id: 7, name: "Kurtis Weissnat", phone: "210.067.6132", }, { id: 8, name: "Nicholas Runolfsdottir V", phone: "586.493.6943 x140", }, { id: 9, name: "Glenna Reichert", phone: "(775)976-6794 x41206", }, { id: 10, name: "Leanne Graham", phone: "024-648-3804", }, ]; for (const user of users) { let countUserOccured = users.reduce( (acc, curr) => (acc += curr.name == user.name), 0 ); if (countUserOccured - 1 != 0) { user.name += countUserOccured; } console.log(user); }

Y quiero que el nombre de los usuarios sea único. si el nombre, por ejemplo, "Leanne Graham" en ese caso se repite muchas veces, quiero que el primero se agregue a su nombre 1, el segundo a su nombre 2...
Probé este enfoque: pero su orden DESC (desde el mayor número de ocurrencias hasta el más bajo) lo quiero en orden ASCending.

 for (const user of users) { let countUserOccured = users.reduce( (acc, curr) => (acc += curr.name == user.name), 0 ); if (countUserOccured - 1 != 0) { user.name += countUserOccured; } console.log(user); }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede asignar nuevos objetos con un recuento de nombres incrementado. El primer mismo nombre no recibe un número.

 const users = [{ id: 1, name: "Leanne Graham", phone: "1-770-736-8031 x56442" }, { id: 2, name: "Ervin Howell", phone: "010-692-6593 x09125" }, { id: 3, name: "Leanne Graham", phone: "1-463-123-4447" }, { id: 4, name: "Leanne Graham", phone: "493-170-9623 x156" }, { id: 5, name: "Chelsey Dietrich", phone: "(254)954-1289" }, { id: 6, name: "Mrs. Dennis Schulist", phone: "1-477-935-8478 x6430" }, { id: 7, name: "Kurtis Weissnat", phone: "210.067.6132" }, { id: 8, name: "Nicholas Runolfsdottir V", phone: "586.493.6943 x140" }, { id: 9, name: "Glenna Reichert", phone: "(775)976-6794 x41206" }, { id: 10, name: "Leanne Graham", phone: "024-648-3804" }], counts = {}, result = users.map(o => ({ ...o, name: o.name + (counts[o.name] ? ++counts[o.name] : (counts[o.name] = 1, '')) })); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

puedes hacer eso con objetos y contando el valor que quieras.

 const counts = {}; users.forEach((user) => { counts[user.name] = (counts[user.name] || 0) + 1; }); console.log(counts)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que lo que quieres es (agregué un guión bajo antes del índice para mayor claridad):

 const userNamesMap = {}; const users = [ { id: 1, name: "Leanne Graham", phone: "1-770-736-8031 x56442", }, { id: 2, name: "Ervin Howell", phone: "010-692-6593 x09125", }, { id: 3, name: "Leanne Graham", phone: "1-463-123-4447", }, { id: 4, name: "Leanne Graham", phone: "493-170-9623 x156", }, { id: 5, name: "Chelsey Dietrich", phone: "(254)954-1289", }, { id: 6, name: "Mrs. Dennis Schulist", phone: "1-477-935-8478 x6430", }, { id: 7, name: "Kurtis Weissnat", phone: "210.067.6132", }, { id: 8, name: "Nicholas Runolfsdottir V", phone: "586.493.6943 x140", }, { id: 9, name: "Glenna Reichert", phone: "(775)976-6794 x41206", }, { id: 10, name: "Leanne Graham", phone: "024-648-3804", }, ].map(user => { if (userNamesMap[user.name]) { user.name += `_${userNamesMap[user.name]++}` } else { userNamesMap[user.name] = 1; } return user; }); console.log(users);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda