#vue.js #v-for
#vue.js #v-для
Вопрос:
Я использую v-for для перебора объекта, мне нужно получить доступ к ключу, значению и индексу. Я видел много способов получить доступ к двум из них, это просто, но не могу найти, как получить доступ ко всем трем.
Я нашел обходной путь, но он ужасно грязный и довольно нечитаемый.
<div v-for="idx in Object.keys(PointsAvailable[0]).length" :key="idx">
<PointSquare
:Value="Object.keys(PointsAvailable[0])[idx-1]"
:Availability="PointsAvailable[0][Object.keys(PointsAvailable[0])[idx-1]]"
:reference="idx-1">
</PointSquare>
</div>
Есть ли лучший способ сделать это?
Ответ №1:
Вы также можете попробовать v-for="(value, key, index) in PointsAvailable"
и ссылаться на них соответствующим образом. проверьте этот пример из документации Vue
<div v-for="(value, name, index) in object">
{{ index }}. {{name }}: {{ value }}
Ответ №2:
Вы можете использовать Object.entries(obj)
для получения ключа и значения объекта, а для получения индекса вы можете определить цикл for как:
<div v-for="(value, index) in Object.entries(points)" :key="index">
{{ value[0] }} {{ value[1] }} {{ index }}
</div>
значение [0] — это ключ, значение [1] — это значение и индекс
Комментарии:
1. Можно было бы ожидать, что вы сможете использовать
v-for=(key, value) in Object.entries(points)
, но это работает не так, как ожидалось. Первый элемент в паре на самом деле представляет собой список, как говорится в сообщении ответа.