gpt4 book ai didi

javascript - 试图理解 rövarspråket 翻译器

转载 作者:行者123 更新时间:2023-11-30 09:58:22 28 4
gpt4 key购买 nike

我正在做一个初学者练习,创建一个 rövarspråket 翻译器。

Write a function translate() that will translate a text into “rövarspråket”. That is, double every consonant and place an occurrence of "o" in between. For example, translate("this is fun") should return the string "tothohisos isos fofunon".

我想出的解决方案很糟糕,所以我找到了一个 here并试图理解它。

var translate = function(text) {
var string = text.toLowerCase();
var vowels = ["a", "e", "i", "o", "u", " "];
var y = "";
for (i = 0; i < string.length; i++) {
var current = string.charAt(i);
if (vowels.indexOf(current) != -1) {
y = (y + (current));
} else {
y = (y + (current + "o" + current));
}
}
return y;
}

console.log(translate("this is fun"));
  • 为什么 if (vowels.indexOf(current) != -1) 特别需要 -1?我尝试了-2-10001000,但它们都破坏了功能。

  • 如果我将 y = ""; 更改为 y = "XYZ"translate("this is fun")返回“XYZtothohisos isos fofunon”。为什么只在第一个辅音之前而不是所有辅音之前?

最佳答案

Why does if (vowels.indexOf(current) != -1) need -1 specifically? I tried -2, -1000, 1000, but they all break the function.

好吧,这就是indexOf找不到字符时返回。如果您将其与其他任何内容进行比较,它会假定始终看到元音,并且从不翻译任何内容。

If I change y = ""; to y = "XYZ", translate("this is fun") returns "XYZtothohisos isos fofunon". Why is it only before the first consonant and not all of them?

因为跟辅音没有关系。 y 是累加器、缓冲区,不管你怎么调用它,翻译后的结果逐项附加到其中。它自然地以空字符串开始(初始化为)。

关于javascript - 试图理解 rövarspråket 翻译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823698/

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