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

222
Vistas
¿Cómo comparo los valores de propiedad de un objeto con los valores de una matriz y luego reemplazo los valores del objeto con los valores de la matriz?

Digamos que tengo una matriz como esta (estoy agregando letras al azar solo para recrear mi ejemplo un poco mejor).

 arr1 = ["appless", "bananarr", "orangeaa", "coconutvv", "pineapplevv"]

Luego tengo un grupo de objetos.

 const objects: [{ name: "john", job: "carpenter", color: "blue" status: "banana"}, { name: "john", job: "plumber", favorites: "banana", "apple", "orange", color: "blue", "purple"}, { name: "john", job: "carpenter", favorites: "orange", "pineapple", gender: "female"}]

Como puede ver, mis objetos tienen diferentes propiedades, pero muchos valores coinciden con uno o más valores en mi arr1. Ahora, para cada valor que coincida principalmente con una de las cadenas en mi arr1, quiero reemplazar el índice del valor coincidente en arr1 en el valor del objeto (como se muestra a continuación), para cada objeto y para cada propiedad.

Resultado de ejemplo:

 const objects: [{ name: "john", job: "carpenter", color: "blue" status: 1}, { name: "john", job: "plumber", favorites: 1, 0, 2, color: "blue", "purple"}, { name: "john", job: "carpenter", gender: "female", 2}]

Lo que estoy tratando de hacer en realidad es reemplazar dinámicamente los valores de cadena de bibliotecas/tecnologías/frameworks/etc (es decir, "Reaccionar") de un proyecto de cartera (los objetos se obtienen de un json local) con sus respectivos íconos (para que estoy usando iconos de React). No quiero ir a editar el json directamente.

Puse todos los componentes de íconos que necesito en una matriz, luego los usé para hacer una copia de la matriz con los valores de "cadena" de esos componentes de íconos (array.map).

Para obtener el índice: CREO que es mejor intentar hacer coincidir arr1 uno por uno ("favoritos", "estado" y "género" en este ejemplo), algo así como objects.map(object=>{object.favorites.includes("orangeaa").indexOf()} ??

No todos los objetos tienen una propiedad de "favoritos", por lo que obtendré algunos resultados indefinidos... Una vez que logre obtener ese número de índice, lo usaré para representar el ícono real. Como estoy usando reaccionar, será algo como esto:

 {object.favorites && (<div> <h3>Favs:</h3>{object.favorites.map(i=><p key={i}>{iconComponentsArray[i]}</p>)}
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede mapear los favoritos con los índices de la matriz de destino.

 function getIndices(values, targets) { return values.map(s => targets.findIndex(t => t.includes(s))); } console.log(getIndices( ["banana", "apple", "orange"], ["appless", "bananarr", "orangeaa", "coconutvv", "pineapplevv"] ));

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