当我要求随机图像时,Bot 有时会发布 NaN
Bot sometimes posts NaN when I ask for a random image
我目前正在使用 discord.js 模块制作一个机器人。我在 JavaScript 或一般编程方面不是很好,我试过到处询问这个问题,但我无法修复它。
我的机器人应该从一个数组中提取一个图像,该数组有 12 个图像本地保存在我的计算机上。有时这会成功,但有时它只是在 DISCORD 中(而不是在控制台中)回复 "NaN"。
else if (msg.content.startsWith(prefix + "duckquery")) {
var ducks = [ {file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"}, +
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"}, {file: "./img/ducks7.jpg"}, +
{file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"}, {file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, +
{file: "./img/ducks12.jpg"}];
var duck = ducks[Math.floor(Math.random()*(ducks.length))]
msg.channel.send(duck);
你不应该使用 +
,因为它试图添加两个对象,给你一个 NaN
(不是数字)
var ducks = [ {file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"}, +
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"}, {file: "./img/ducks7.jpg"}, +
{file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"}, {file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, +
{file: "./img/ducks12.jpg"}];
正在打印鸭子:
[Object, Object, Object, NaN, Object, Object, Object, NaN, Object, Object, Object, NaN]
改为使用:
var ducks = [
{file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"},
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"},
{file: "./img/ducks7.jpg"}, {file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"},
{file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, {file: "./img/ducks12.jpg"}
];
这给你对象:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
您确定需要对象数组而不是字符串数组吗?
var ducks = [
"./img/ducks1.jpg", "./img/ducks2.jpg", "./img/ducks3.jpg",
"./img/ducks4.jpg", "./img/ducks5.jpg", "./img/ducks6.jpg",
"./img/ducks7.jpg", "./img/ducks8.jpg", "./img/ducks9.jpg",
"./img/ducks10.jpg", "./img/ducks11.jpg", "./img/ducks12.jpg"
];
我目前正在使用 discord.js 模块制作一个机器人。我在 JavaScript 或一般编程方面不是很好,我试过到处询问这个问题,但我无法修复它。
我的机器人应该从一个数组中提取一个图像,该数组有 12 个图像本地保存在我的计算机上。有时这会成功,但有时它只是在 DISCORD 中(而不是在控制台中)回复 "NaN"。
else if (msg.content.startsWith(prefix + "duckquery")) {
var ducks = [ {file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"}, +
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"}, {file: "./img/ducks7.jpg"}, +
{file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"}, {file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, +
{file: "./img/ducks12.jpg"}];
var duck = ducks[Math.floor(Math.random()*(ducks.length))]
msg.channel.send(duck);
你不应该使用 +
,因为它试图添加两个对象,给你一个 NaN
(不是数字)
var ducks = [ {file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"}, +
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"}, {file: "./img/ducks7.jpg"}, +
{file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"}, {file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, +
{file: "./img/ducks12.jpg"}];
正在打印鸭子:
[Object, Object, Object, NaN, Object, Object, Object, NaN, Object, Object, Object, NaN]
改为使用:
var ducks = [
{file: "./img/ducks1.jpg"}, {file: "./img/ducks2.jpg"}, {file: "./img/ducks3.jpg"},
{file: "./img/ducks4.jpg"}, {file: "./img/ducks5.jpg"}, {file: "./img/ducks6.jpg"},
{file: "./img/ducks7.jpg"}, {file: "./img/ducks8.jpg"}, {file: "./img/ducks9.jpg"},
{file: "./img/ducks10.jpg"}, {file: "./img/ducks11.jpg"}, {file: "./img/ducks12.jpg"}
];
这给你对象:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
您确定需要对象数组而不是字符串数组吗?
var ducks = [
"./img/ducks1.jpg", "./img/ducks2.jpg", "./img/ducks3.jpg",
"./img/ducks4.jpg", "./img/ducks5.jpg", "./img/ducks6.jpg",
"./img/ducks7.jpg", "./img/ducks8.jpg", "./img/ducks9.jpg",
"./img/ducks10.jpg", "./img/ducks11.jpg", "./img/ducks12.jpg"
];