В Vue.js вы можете отображать варианты ответов в случайном порядке, используя различные подходы. Один из эффективных способов - это использование метода shuffle()
для перетасовки массива со списком вариантов ответов.
В начале, у вас должен быть массив с вариантами ответов. Например:
data() { return { answers: [ 'Вариант ответа 1', 'Вариант ответа 2', 'Вариант ответа 3', 'Вариант ответа 4' ] } }
Затем, вы можете создать вычисляемое свойство (computed property
), которое будет отвечать за отображение перетасованных вариантов ответов. При каждом обновлении этой вычисляемой свойства, массив с вариантами ответов будет перетасовываться. Пример реализации:
computed: { randomizedAnswers() { return this.shuffle(this.answers); } }, methods: { shuffle(array) { let currentIndex = array.length; let temporaryValue, randomIndex; while (currentIndex !== 0) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } }
В данной реализации используется алгоритм Fisher-Yates для перемешивания элементов массива. Функция shuffle()
принимает массив и возвращает его, отсортированный в случайном порядке.
Теперь вы можете использовать перетасованный массив randomizedAnswers
для отображения вариантов ответов в случайном порядке в пользовательском интерфейсе вашего приложения. Например:
<template> <div> <h1>Вопрос:</h1> <p>Выберите правильный ответ:</p> <ul> <li v-for="answer in randomizedAnswers" :key="answer">{{ answer }}</li> </ul> </div> </template>
Теперь, каждый раз, когда будет обновляться компонент, randomizedAnswers
будет содержать перетасованные варианты ответов. Это позволяет выводить их в случайном порядке каждый раз, когда пользователь видит эту страницу.