Получение значения из результата? - PullRequest
0 голосов
/ 01 октября 2019

Итак, я получаю значения из chuck norris api . Я могу получить и представить значения, когда дано одно значение, например, при использовании события random из API. У меня вопрос, как я могу представить значение, данное мне, когда в списке отображается более одного значения?

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)};

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Звучит так, будто вы спрашиваете, как выбрать один элемент в произвольном порядке из массива. Math.random дает вам случайное число от 0 до 1. Как вы можете преобразовать это в случайный индекс в массиве? Умножьте сначала на размер вашего массива, затем округлите до 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)
0 голосов
/ 01 октября 2019

Самый простой способ выбрать случайное значение из массива элементов - это сделать следующее:

const randomItem = allItems[Math.floor(Math.random() * allItems.length)];
...