从结果中获取值?

Posted

技术标签:

【中文标题】从结果中获取值?【英文标题】:Fetching a value from a result? 【发布时间】:2020-01-30 06:42:22 【问题描述】:

所以我从 chuck norris api 获取值。当给定一个值时,例如使用来自 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);

【问题讨论】:

如果有多个 args,您是在问如何进行多个 API 调用? 是的。如果我得到一个有 5 个值可供选择的结果列表。我想随机选择并显示它选择的值?现在我开始认为我没有任何意义哈哈 【参考方案1】:

听起来您在问如何从数组中随机选择一项。 Math.random 为您提供 0 到 1 之间的随机数。如何将其转换为 Array 中的随机索引?先乘以数组的大小,然后用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)

【讨论】:

啊,谢谢。我从来没有想过我需要使用 Math.random,但我现在想要一个随机输出更有意义。【参考方案2】:

从项目数组中选择随机值的最简单方法是执行以下操作:

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

【讨论】:

以上是关于从结果中获取值?的主要内容,如果未能解决你的问题,请参考以下文章

使用数组从条件循环的结果中获取值

agg 后从数据帧中获取结果值

我需要获取 API 以从响应中获取与 POSTMAN 中的结果相同但失败的原始值?

如何从谷歌地方详细信息结果中获取纬度和经度值

无法从自定义结果类型的值堆栈中获取 ftl 中的值

我只想从返回的 JSON 结果中获取特定值