Что бы я сделал с точки зрения высокого уровня:
- Имею 2 списка вопросов (для 2 возрастных групп).
- Перемешайте соответствующий набор Вопросы
- извлеките последний элемент из набора вопросов, чтобы показать его пользователю.
- повтор.
Хорошо, допустим, у вас есть два списка или массива вопросов :
let smallQuestions = ['how many fingers do you have', 'what does the dog say', 'what color is a sheep', 'how old are you'];
let bigQuestions = ['how many kids do you have', 'did you do your taxes', 'do you own a car', 'do you drink alcohol'];
Теперь давайте напишем небольшую функцию для перемешивания массива:
const shuffleArray = arr => arr
.map(a => [Math.random(), a])
.sort((a, b) => a[0] - b[0])
.map(a => a[1]);
Теперь несколько псевдокодов, чтобы показать сценарий:
let smallQuestions = ['how many fingers do you have', 'what does the dog say', 'what color is a sheep', 'how old are you'];
let bigQuestions = ['how many kids do you have', 'did you do your taxes', 'do you own a car', 'do you drink alcohol'];
const shuffleArray = arr => arr
.map(a => [Math.random(), a])
.sort((a, b) => a[0] - b[0])
.map(a => a[1]);
const askMeSomething = (age) => {
if (age > 11) {
bigQuestions = shuffleArray(bigQuestions);
return bigQuestions.pop();
} else if (age >= 4) {
smallQuestions = shuffleArray(smallQuestions);
return smallQuestions.pop() || 'out of questions';
} else return 'too young';
}
console.log(askMeSomething(3));
console.log(askMeSomething(4));
console.log(askMeSomething(5));
console.log(askMeSomething(6));
console.log(askMeSomething(7));
console.log(askMeSomething(8));