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

188
Visualizações
Vue Js iterando sobre objeto hashmaped

Para objeto de mapa hash:

 messages = {
 3: {
 id: 3,
 user_id: 1,
 text: "My message"
 }, 

 345: {
 id:345,
 user_id: 2,
 text: "Hello There!"
 },
 ...
}

Y en la plantilla, estoy tratando de agregar diferentes estilos si los mensajes siguientes y anteriores tienen diferentes remitentes ( user_id ). Dado que esto no es una matriz, no puedo hacer:

messages[index + 1] or messages[index - 1]

Necesitaría la identificación exacta del mensaje siguiente y/o anterior. Podría tomar una solución ineficaz convirtiendo el objeto de mensajes en una matriz, encontrando el índice de la identificación del mensaje actual y comparando las identificaciones de los remitentes del mensaje siguiente y anterior. Pero parece que hay una mejor solución, específicamente porque vue v-for ya tiene un "índice" expuesto.

¿Hay mejor enfoque para este problema? Suponiendo que no estoy creando variables adicionales que rastreen las identificaciones (esto solo aumenta la complejidad).

almost 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Puede acceder así, niño siendo el objeto secundario

 <p v-for="(child, key, index) in obj" :key="index">{{child.id}},{{key}},{{index}}</p>
almost 4 years ago · Santiago Trujillo Relatório

0

Object.keys() Obtiene una matriz de claves en el mismo orden que la iteración del objeto. La clave de la iteración anterior se puede encontrar en cada iteración encontrando la posición de la clave en esta matriz. Accede al valor anterior con todo el objeto y la clave anterior.

Es mejor convertir a una matriz. Por un lado, las propiedades de los objetos ordinarios en realidad no están ordenadas, y el orden en el que se recorren los objetos a menudo depende de la implementación de métodos de recorrido específicos por parte de diferentes motores JS del navegador. Entonces es fácil que el navegador del usuario varíe y, por lo tanto, no cumpla con las expectativas (aunque es posible que no tenga problemas con esto si la clave en su objeto es de tipo Número). Por otro lado, en este escenario de visualización secuencial, las matrices son más semánticas que los objetos normales y, en realidad, son más elegantes.

Si su preocupación es sobre el rendimiento, el front-end rara vez necesita pensar tanto en ello.

Así que conviértalo en una matriz, tal vez la mejor.

------Editar------

Pedir a los ingenieros de back-end que devuelvan una matriz directamente puede ser mejor que 'mejor'.

almost 4 years ago · Santiago Trujillo 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