问题描述
当我尝试运行此代码时得到 TypeError: Cannot read property 'forEach' of undefined
:
for (let Sıra_Numarası = 0; Sıra_Numarası < Anlamlar_Liste.length; Sıra_Numarası++) {
Anlamlar_Liste[Sıra_Numarası].ozelliklerListe.forEach(Özellik => {
Tepki_Mesajı.addField(`${Sıra_Numarası + 1}. ${Özellik.tam_adi}`,Anlamlar_Liste[Sıra_Numarası].anlam,true)
console.log(Özellik.tam_adi)
console.log(Anlamlar_Liste[Sıra_Numarası].ozelliklerListe)
})
}
Tepki_Mesajı.addField ()
方法用于向 discord Embed 消息添加新字段,我认为失败就在这里,因为 console.log ()
工作成功并且我在 JSON API 中获取数据。
API 中 Anlamlar_Liste
的值是:
[
{
"anlam_id": "4798","madde_id": "9592","anlam_sira": "1","fiil": "0","tipkes": "0","anlam": "Çocuğu olan kadın,ana,valide,kocakarı,mader,nene,aba","gos": "0","ozelliklerListe": [
{
"ozellik_id": "19","tur": "3","tam_adi": "isim","kisa_adi": "a.","ekno": "30"
}
]
},{
"anlam_id": "4799","anlam_sira": "2","anlam": "Yavrusu olan dişi hayvan","gos": "0"
}
]
解决方法
数组中的某些对象没有 ozelliklerListe
属性。所以在尝试使用它之前先检查一下。
Anlamlar_Liste.forEach(anlamlar => {
if (anlamlar.ozelliklerListe) {
anlamlar.ozelliklerListe.forEach(Özellik => {
Tepki_Mesajı.addField(`${Sıra_Numarası + 1}. ${Özellik.tam_adi}`,Anlamlar_Liste[Sıra_Numarası].anlam,true)
console.log(Özellik.tam_adi)
console.log(Anlamlar_Liste[Sıra_Numarası].ozelliklerListe)
})
}
});