我不知道我的代码有什么问题。请问你能帮帮我吗? 此函数将使用数组翻译单词。 完整的目标是:
代表一个小的双语词典作为Javascript对象 追随时尚{“merry”:“上帝”,“圣诞节”:“jul”,“和”:“och”, “happy”:gott“,”new“:”nytt“,”year“:”ĺr“}并用它来翻译你的 圣诞贺卡从英语到瑞典语。
function translateText(){
var translate=[], i= 0,text, word, text2='';
translate = {"merry":"god", "christmas":"jul", "and":"och", "happy":"gott", "new":"nytt", "year":"ĺr"};
text = document.getElementById('text').value;
word = text.split(" ");
for (i;i<word.length; i++){
if (translate.indexOf(word)!==-1) {
text2 += translate[word] + " ";
}else{
text2 += word + " ";
}
}
document.getElementById('boxEight').innerHTML = text2;
}
答案 0 :(得分:1)
它不起作用,因为您使用对象而不是数组,尽管可以以类似于数组的方式使用对象。
要检查对象是否包含值,您可以使用hasOwnProperty
:
if (translate.hasOwnProperty(word)) {
...
}
in
:
if (word in translate) {
...
}
或者只是一个老式的老式访问,如果你只关心它有一个&#34; truthy&#34;值(不是0
,false
,null
,undefined
,NaN
或空字符串。
if (translate[word]) {
...
}
答案 1 :(得分:0)
我不确定,但我认为可能是您将翻译数组转换为具有以下行的对象:
translate = {"merry":"god", "christmas":"jul", "and":"och", "happy":"gott", "new":"nytt", "year":"ĺr"};
尝试将花括号{}更改为方括号[]
答案 2 :(得分:-1)
你翻译一个对象,而不是一个数组,所以首先:
translate = [{"merry":"god"}, {"christmas":"jul"}, {"and":"och"}, {"happy":"gott"}, {"new":"nytt"}, {"year":"ĺr"}];
接下来,indexof是一种获取字符串中单词或字符索引的方法 Reference