我有一个消息收集器的过滤器和数组。
const answers = ["Rock", "Paper", "Scissors"];
const filter = msg => answers.includes(msg.content());
该过滤器只检测与数组中的内容完全匹配的内容。因此,如果一条消息说“剪刀!!",它不会被检测到,因为有额外的文本(!!)。设计是它仍然应该被检测到。
我应该在过滤器中使用for循环,这对吗?我该怎么做呢?提前感谢。
我有一个消息收集器的过滤器和数组。
const answers = ["Rock", "Paper", "Scissors"];
const filter = msg => answers.includes(msg.content());
该过滤器只检测与数组中的内容完全匹配的内容。因此,如果一条消息说“剪刀!!",它不会被检测到,因为有额外的文本(!!)。设计是它仍然应该被检测到。
我应该在过滤器中使用for循环,这对吗?我该怎么做呢?提前感谢。
2条答案
按热度按时间dwbf0jvd1#
这很简单。你可以使用
.some()
函数,如果回调函数中传递的条件与任何值匹配,它将返回true
,否则将返回false
。例如:q8l4jmvw2#
如果你想在filter中使用for循环,你可以尝试这样做:
这将检查消息内容中是否包含任何答案,而不是检查是否完全匹配。您也可以使用
Array.some()
方法来简化代码: