【问题标题】:How to return the value of the second array through the input of the first array如何通过第一个数组的输入返回第二个数组的值
【发布时间】:2020-07-06 04:42:07
【问题描述】:

我想用 JavaScript 制作一个多语言工具。我需要将单词与其他语言中的单词配对。我想使用 3 种不同的语言。用户输入蔬菜的名称,选择几种语言中的一种并获得正确的输出。

 var VegetablesInput = ["tomato", "potato", "cucumber", "carrot"]
 var Italian = ["pomodoro", "patata", "cetriolo", "carota"]
 var Croatian = ["rajčica", "krumpir", "krastavac", "mrkva"]
 var Spanish = ["tomate", "patata", "pepino", "zanahoria"]
 var languageInput = prompt ("Choose Italian, Croatian or Spanish.");
 var languageInput = languageInput.toLowerCase();
   function MatchTheWord (language, word) if (languageInput=="italian" && 
 WordInput 
 == "croatian" && WordInput == "spanish") {
 }

我想根据所选语言将蔬菜输入数组的元素与正确的单词匹配。但我不知道如何简单地通过函数内的数组循环来做到这一点。 任何帮助将不胜感激。

【问题讨论】:

  • 语法:function functionName(params) { code }。将{ 放在)if 之间,并从"Spanish"). Also, if you toLowerCase(), then don't capitalize in the if`(例如“Italian”)之后删除。 = 对于初学者。
  • 验证语言后,使用indexOfWord = VegetablesInput.indexOf(word),如果-1,则“未找到”,否则返回language[indexOfWord]。我可以建议将语言数组放在一个以键为语言的对象中吗? translatedWords={"italian":["pomodoro", "patata", "cetriolo", "carota"], "croatian":["rajčica", "krumpir", "krastavac", "mrkva"], "spanish":["tomate", "patata", "pepino", "zanahoria"]} - 那么,如果 language=="italian"word=="potato"translatedWords[language][VegetablesInput.indexOf(word)] 将返回“patata”。
  • @iAmOren 写一个答案。那些评论 Blob 难以阅读,尤其是对于不懂代码的人
  • @charlietfl,谢谢 - 我同意你的观点,但我的答案已经被标记了 - “SO 不是代码编写服务”......我看到 Pavel 写得很好答案类似于我的(评论形式)。
  • @iAmOren,感谢您建议将语言数组放在以语言为键的对象中。效果很好。

标签: javascript arrays function loops


【解决方案1】:

希望得到帮助:

var Vegetables = {
  it: {
    tomato: "pomodoro",
    potato: "patata",
    cucumber: "cetriolo",
    carrot: "carota",
  },
  cr: {
    tomato: "rajčica",
    potato: "krumpir",
    cucumber: "krastavac",
    carrot: "mrkva",
  },
  sp: {
    tomato: "tomate",
    potato: "patata",
    cucumber: "pepino",
    carrot: "zanahoria",
  },
};
var languageInput = prompt("Choose Italian, Croatian or Spanish.");
var languageInput = languageInput.toLowerCase();
var wordInput = prompt("Choose Word: tomato, potato, cucumber, carrot.");

var translatedWord = Vegetables[languageInput][wordInput]

【讨论】:

  • 嗨,谢谢大家的回答。但是,我仍然不清楚如何根据选择的语言(循环遍历函数内的数组)将蔬菜输入数组的元素与正确的单词匹配。我是编码新手。如果有人能解释在这种情况下该怎么做,我将不胜感激。使用什么数组方法?以及如何匹配它们并返回正确的值。我想了解它背后的原理。
  • 在这个解决方案中,我们没有遍历数组。 Vegetables - 它是一个带有键和值的对象。我们的对象有深度 2。上层 - 语言选择器,第二层 - 是词选择器。对象类型通过括号表示法或点表示法提供值访问器。在我们的逻辑中,由于动态键,我们无法通过点符号访问值。
  • Pavel,这是否意味着对于这种特殊情况我需要使用对象方法 get.KeyByValue?
  • 这种情况下可以使用数组,但不方便。如果数组超过 100 个单词,则很难管理每个可翻译单词的索引。想象一下,你有十种语言,你需要更新一些单词。
  • 我使用了对象数组并设法使用 for 循环进行翻译。这是一种我可以将所有这些都放在函数中并返回“翻译的单词”的方法吗?任何建议都会受到赞赏。我的 for 循环看起来像这样: for (var c=0; c
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
相关资源
最近更新 更多