gpt4 book ai didi

javascript - 无法读取对象的对象的未定义属性 '0'

转载 作者:行者123 更新时间:2023-12-02 17:47:15 26 4
gpt4 key购买 nike

我有一个包含数组的对象的对象。我想循环浏览它们。对于 vocab 中的 subjects 对象,parseHoveredText() 的 log("log: "+ obj + ", "+ vocab[obj][word.toLowerCase ()][0]); 工作正常。

输出:记录主题,您

但是对于其他对象,例如名词动词等...,log("log: "+ obj + ", "+ vocab[obj][word.toLowerCase()][0]); 给出:

输出:无法读取未定义的属性“0”

我不明白这怎么可能。如果我将 'má' : ['Hemp', path+n+'Ma2_Hemp.mp3'], 放在 subjects 对象中,它就可以正常工作......所以我认为循环有问题。

因此,如果我将 log 更改为 log("log: "+ obj + ", "+ vocab[obj][word.toLowerCase()]); :

输出:

log: subjects, undefined 
log: nouns, Mother,recordings/nouns/Ma1_Mother.mp3
log: verbs, undefined
log: measure, undefined
log: adjectives, undefined
log: adverbs, undefined
log: prepositions, undefined
log: particles, undefined
log: suffix, undefined

因此,它正在从其他对象中查找键,正如您所看到的,它从 Nouns 返回了 Mother

代码:

var path = 'recordings/';
var sbj = 'subjects/';
var n = 'nouns/';

var vocab =
{
"subjects" :
{
'wǒ' : ['I/Me', path+sbj+'Wo_I.mp3'],
'nǐ' : ['You', path+sbj+'Ni_You.mp3'],
'tā' : ['Him/Her', path+sbj+'Ta_him.mp3'],
'shuí' : ['Who', path+sbj+'Shui_Who.mp3']
},
"nouns" :
{
'xièxiè': ['Thanks', path+n+'Xiexie4_Thanks.mp3'],
'duì' : ['Correct/at/facing', path+n+'Dui4_Facing.mp3'],
'má' : ['Hemp', path+n+'Ma2_Hemp.mp3'],
etc...

function parseHoveredText (word, audio) {
for (obj in vocab) {
log("log: " + obj + ", " + vocab[obj][word.toLowerCase()][0]);
if(audio) {
return vocab[obj][word.toLowerCase()][1];
}
return vocab[obj][word.toLowerCase()][0];
}
}

最佳答案

看来你的逻辑有点问题。发生的情况是,您将一个单词(我假设是“wǒ”)传递到您的 parseHoveredText() 函数中,并且该函数尝试引用每个词汇对象中的单词。这总是会导致名词或任何非主题的错误,因为它会尝试在主题中查找单词首先是数组。

您应该能够通过将函数更改为来解决此问题:

function parseHoveredText (word, audio) {
for (obj in vocab) {
if(vocab[obj][word.toLowerCase()]) {
log("log: " + obj + ", " + vocab[obj][word.toLowerCase()][0]);
if(audio) {
return vocab[obj][word.toLowerCase()][1];
}
return vocab[obj][word.toLowerCase()][0];
}
}
}

关于javascript - 无法读取对象的对象的未定义属性 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com