Итак, я получаю значения из chuck norris api . Я могу получить и представить значения, когда дано одно значение, например, при использовании события random из API. У меня вопрос, как я могу представить значение, данное мне, когда в списке отображается более одного значения?
random
let topic = args.join(" "); //defines topic set as varliable to use in query search fetch(`https://api.chucknorris.io/jokes/search?query=${topic}`).then(result => result.json()); const { sub } = await fetch(`https://api.chucknorris.io/jokes/search?query=${topic}`).then(result => result.json()); if(topic !== " ") { return message.channel.send(sub)};
Звучит так, будто вы спрашиваете, как выбрать один элемент в произвольном порядке из массива. Math.random дает вам случайное число от 0 до 1. Как вы можете преобразовать это в случайный индекс в массиве? Умножьте сначала на размер вашего массива, затем округлите до Math.floor:
Math.random
Math.floor
const response = await fetch(`https://api.chucknorris.io/jokes/search?query=${topic}`); const jokes = await response.json(); const randomIndex = Math.floor(Math.random() * jokes.length); const randomJoke = jokes[randomIndex]; return message.channel.send(randomJoke)
Самый простой способ выбрать случайное значение из массива элементов - это сделать следующее:
const randomItem = allItems[Math.floor(Math.random() * allItems.length)];