Я пытаюсь сделать игру типа «Jeopardy» с некоторыми друзьями, и из примера набора данных снизу (ради краткости я включил только базовую структуру; но значение data.clues.categoryId продолжается с 10 -1), мне нужно выяснить, как вернуть четыре подсказки, каждая из которых имеет значение возрастающей точки от 100-400 (увеличено на 100), из 4 категорий, выбранных случайным образом из набора из 10 категорий. Я уже написал метод выбора 4-х случайных категорий, теперь мне просто нужно написать метод, чтобы получить подсказки.
Ниже приведен код, который я написал; но он возвращает только 4 случайных вопроса из каждой категории, игнорируя значение балла. Я бы хотел бы вернуть четыре случайные подсказки из каждой категории, по одному от каждого значения точки (100, 200, 300, 400);
образец набора данных:
const data = {
categories: {
'unitedStatesHistory': 1,
'lifeSciences': 2,
'publicHealth': 3,
'educationJargon': 4,
'nameThatBoardGame': 5,
'americanLiterature': 6,
'biographies': 7,
'americanCities': 8,
'food': 9,
'cableTV': 10
},
clues: [
{
question: "Scorecard Report\" & \"Peter Jacobsen Plugged In\" are seen on the sports channel devoted to this",
pointValue: 100,
answer: "golf",
categoryId: 10
},
{
question: "One of the most popular shows on the Food Network is \"The Essence of\" him",
pointValue: 200,
answer: "Emeril",
categoryId: 10
},
{
question: "The Eulogy\" is HBO's e-mail newsletter devoted to this series",
pointValue: 300,
answer: "Six Feet Under",
categoryId: 10
},
{
question: "(Hi, I'm Billy Ray Cyrus.) In 2001 I began practicing medicine in the Big Apple on this Pax TV drama",
pointValue: 400,
answer: "Doc",
categoryId: 10
},
{
question: "What Sonya Fitzpatrick is, or the Animal Planet series on which she communicates with animals telepathically",
pointValue: 400,
answer: "The Pet Psychic",
categoryId: 10
}
мой код до сих пор:
function retrunCurrentCategoryClues(randomCategories) {
return randomCategories.map(category => {
const usableClues = data.clues.reduce((allClues, clue) => {
if (clue.categoryId === category) {
allClues.push(clue);
}
return allClues;
}, []);
while (usableClues.length > 4) {
usableClues.splice(Math.round(Math.random() * usableClues.length), 1);
}
return usableClues;
});
}
retrunCurrentCategoryClues([10, 8, 3, 4]);
Результаты ожидаемые, ошибок нет, я просто не могу понять, как вернуть подсказки, основанные на значении точки. Помогите! :)