无法读取 属性 'includes' 未定义的不和谐嵌入来检测表情符号

Cannot read property 'includes' of undefined discord embeds to detect emojis

我在标题方面遇到了同样的问题,但得到了解决方案,idk,我搞砸了这个。我正在尝试检测嵌入的表情符号。

for (var i = 0; i < message.embeds.length; i++) {
    if (message.embeds[i] && message.embeds[i].description.includes("✨")) {
          console.log('Emoji detected');
          break;

        }
  }

提前致谢。

我得到的错误是

if (message.embeds[i] && message.embeds[i].description.includes("✨")) {
                                                           ^

TypeError: 无法读取未定义的 属性 'includes'

查看documentation,字段message.embedsMessageEmbed个对象的数组,由多个字段组成,包括字段description

文档中有趣的部分是字段的类型。这里字段 description 的类型为 ?string? 告诉您该字段可能不在此处。这就是为什么你的循环中有错误。在尝试使用它之前,您必须检查该字段是否存在。


示例:

for (var i = 0; i < message.embeds.length; i++) {
    if (message.embeds[i] &&
        message.embeds[i].description &&
        message.embeds[i].description.includes('✨')) {
          console.log('Emoji detected');

          break;
    }
}

ES6 中的示例:

if (message.embeds.some(x => x.description && x.description.includes('✨'))) {
   console.log('Emoji detected');
}