问题描述
我正在尝试用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]
。