• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

126
Views
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 3 years ago · Santiago Trujillo
2 answers
Answer question

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 3 years ago · Santiago Trujillo Report

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error