Как случайным образом выбрать определенное количество элементов из массива, используя v-for?

Я хочу случайным образом выбрать конкретное количество элементов из массива на основе пользовательского ввода. Массив выглядит так:

arr: [
1.png, 2.png, 3.png, ..., 100.png
]

У меня есть метод тасования массива, когда пользователь нажимает кнопку "Создать". Однако я не знаю, как я могу контролировать количество предметов, используя v-for. Если я сделаю <img v-for="n in arr" :key="n" :src="/static/images/${n}.png">Я просто получу весь массив.

1 ответ

Решение

Вы можете воспользоваться Vue.js, чтобы определить computed свойство называется subArray следующим образом:

       data(){
       return{
        ... 
       userInputValue:this.arr.length //by default get all the array, this property 
        }                              // is bound to input, it can be changed 
       }
      computed:{
         ...
         subArray(){
             return this.arr.splice(0,this.userInputValue);
          }
       }

в вашем шаблоне:

  <img v-for="n in subArray" :key="n" :src="/static/images/${n}.png">

Примечание: не помещайте свою логику в шаблон, это не очень хорошая практика, поэтому держите ее в своем скрипте

Другие вопросы по тегам