gpt4 book ai didi

javascript - 解析对象的对象

转载 作者:行者123 更新时间:2023-11-30 08:50:14 24 4
gpt4 key购买 nike

我想将#currentWord span 设置为悬停在中文单词的英文翻译上。

为此,我将根据单词的类别将单词存储在一个对象中:

var vocab = {
"pronouns" :
{
'wǒ' : 'I',
'nǐ' : 'You',
},
"nouns" :
{
'gǒu' : 'dog'
},
"verbs" :
{
'bāng' : 'help',
'xún' : 'search',
}

};

然后我调用 parseHoveredText 将单词发送到 currentWord 范围:

$("#currentWord").text(parseHoveredText(word));

parseHoveredText() 函数:

function parseHoveredText (word) {
for (obj in vocab) {
log(vocab[obj][word]);
return vocab[obj][word];
}
return "";
};

当我将鼠标悬停在“Ni”上时,它会正确输出英文“You”

enter image description here

控制台输出也是正确的:You


但是:将鼠标悬停在 bang 上(在“verbs”对象中)不输出任何内容:

enter image description here

控制台输出显示:Undefined

奇怪的是:如果我注释掉//return vocab[obj][word];,控制台会输出正确的相关英文“Help”,但仍然没有将其显示到 span...

这是为什么?

谢谢!

最佳答案

您正在遍历整个 vocab 对象并在第一次迭代中返回,甚至没有检查单词是否在内部对象中。

将鼠标悬停在“Ni”上是“偶然”的,因为第一次迭代中的属性似乎是名词。但是因为“bang”不在 vocab.nouns 中,所以你会得到 undefined

你必须检查每个类别中是否包含该词,并在找到时返回翻译。

for (obj in vocab) {
if (word in vocab[obj]) {
return vocab[obj][word];
}
}

关于javascript - 解析对象的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539859/

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