web-dev-qa-db-ja.com

不定値のプロパティ 'Include'を読み取れません

私はJavaScriptに新しい、私は組み込みメッセージを解剖しようとしていました。これが私のコードです、それに応じてうまくいくが、それに応じてうまくいくが、何が悪いのか。

bot.on('message', (message) => {
  for (var i = 0; i < message.embeds.length; i++) {
    if (message.embeds[i].title.includes("text!")) {
      message.channel.send('reply')
    }
  }
})
 _
2
Soham Saha

このコードはこの問題を解決できると思います。


bot.on('message', (message) => {
  for (var i = 0; i < message.embeds.length; i++) {
    if (message.embeds[i] && message.embeds[i].title.includes("text!")) {
      message.channel.send('reply')
    }
  }
})

 _
0
Moein Alizadeh

JavaScriptは型の安全な言語ではなく、エラーは安全ではないことが原因です。オブジェクトが存在し、ネストされたプロパティが存在するかどうかを確認する必要があります。あなたの場合は:


bot.on('message', (message) => {

  // check if main obj and main property exist
  if (message && message.embeds) {

    for (var i = 0; i < message.embeds.length; i++) {
      // now, check if title exists and after check the text inside
      if (
        message.embeds[i].title && 
        message.embeds[i].title.includes("text!")) 
      {
        message.channel.send('reply')
      }
    }

  }
});

 _
0
Ci Boz