我正在尝试用JavaScript编写Discord机器人,并且遇到了问题

问题描述

我正在尝试用JavaScript编写discord机器人,并且遇到问题,当CMD窗口到达“ if(styles.includes(cmd2))”语句中的代码时,崩溃到桌面。有人知道这个问题可能是什么吗?

用户应输入“!recommend”,然后输入“电影”,“游戏”或“表演”。当前运行正常。

我现在正尝试添加一种情况,用户可以输入“!recommend”,然后输入诸如“ sci-fi”之类的风格或风格。该漫游器应在“电影” 2D阵列中搜索其类型列表中包含“科幻”的任何电影。这不起作用。

我怀疑该问题是由“ if(movies [i] .includes(cmd2))”语句引起的,但是,这比基于任何实际逻辑推理的感觉更多。 “ genreMovies [i] [y] .push(movies [i] [y]);”线也可能是问题的根源。任何帮助将非常感激!感谢您抽出宝贵的时间阅读本文!

代码如下所示:

SELECT DATEADD(day,DATEDIFF(day,'2020-09-10 18:30:00.000'),1)

解决方法

movies[i].includes(cmd2)的行为不符合您的预期。让我们分解一下:

movies[i]具有有关一部电影的数据,例如: ['Blade Runner (1982)',15,'1h 57m','cyberpunk,dystopia,noir','film with a brilliant aesthetic and a great cyberpunk noir tale to tell.']

与流派有关的数据是第四个数组项-'cyberpunk,noir'

如果数组中有一个值(如提供的值),则数组方法array.includes(value)返回true,因此,如果用户键入!recommend cyberpunk,则该值为cyberpunk'cyberpunk' !== 'cyberpunk,noir'

我建议将电影数据构造为对象,例如:

{
  name: 'Blade Runner',year: 1982,genres: ['cyberpunk','dystopia','noir']
  ...
}

然后您可以执行movies[i].genres.includes(cmd2)

然后,代码将在行genreMovies[i][y].push(movies[i][y])上出错,因为您已将genreMovies定义为空数组,并且试图访问一些未定义的genreMoves[i][y]