gpt4 book ai didi

替换字符串时 Javascript 错误

转载 作者:行者123 更新时间:2023-12-03 09:16:06 31 4
gpt4 key购买 nike

我正在尝试从有关替换字符串的代码大战中发起 Javascript 挑战。

说明是:您的任务:

您必须创建一个函数GrεεκL33t,其中
接受一个字符串作为输入并以以下形式返回(L33T+Grεεκ) 情况。注:未转换的字母(L33T+Grεεκ) 大小写应以小写形式返回。

(L33T+Grεεκ)Case:

A=α (Alpha) B=β (Beta) D=δ (Delta)
E=ε (Epsilon) I=ι (Iota) K=κ (Kappa)
N=η (Eta) O=θ (Theta) P=ρ (Rho)
R=π (Pi) T=τ (Tau) U=μ (Mu)
V=υ (Upsilon) W=ω (Omega) X=χ (Chi)
Y=γ (Gamma)
Examples:

GrεεκL33t("CodeWars") = "cθδεωαπs"
GrεεκL33t("Kata") = "κατα"

我认为问题是,当我复制网页上提供的希腊字符时,codewars 无法识别它们,它的计算结果为:

Expected: cθδεωαπs, instead got: cundefinedundefinedundefinedundefinedundefinedundefineds

我的解决方案如下,有人知道如何让它工作吗?

function GrεεκL33t(str){
var mapObj = {
A:"α", B:"β", D:"δ",E:"ε", I:"ι", K:"κ",
N:"η", O:"θ", P:"ρ", R:"π", T:'τ', U:'μ',
V:'υ', W:'ω', X:'χ', Y:'γ'
};

str = str.replace(/A|B|D|E|I|K|N|O|P|R|T|U|V|W|X|Y/gi, function(matched){
return mapObj[matched];
});

return str;
}

最佳答案

只需进行一些调整即可使您当前的解决方案发挥作用(并不是说没有更好的解决方案):

function GrεεκL33t(str){
var mapObj = {
a:"α", b:"β", d:"δ",e:"ε", i:"ι", k:"κ",
n:"η", o:"θ", p:"ρ", r:"π", t:'τ', u:'μ',
v:'υ', w:'ω', x:'χ', y:'γ'
};

str = str.toLowerCase().replace(/A|B|D|E|I|K|N|O|P|R|T|U|V|W|X|Y/gi, function(matched){
return mapObj[matched];
});

return str;
}

alert(GrεεκL33t("Codewars"));

您有两个问题。首先,您忽略了以小写形式返回不匹配字符的要求。通过使用 toLowerCase 我们解决了这个问题。第二个问题是您的 mapObj 的键都是大写的,但在 Codewars 的情况下,您传递的是小写字符。 JavaScript 区分大小写。 mapObj["A"]mapObj["a"] 不同。由于我们只是将整个字符串小写,所以我只是将 mapObj 中的键也更改为小写(或者,您可以 matched.toUpperCase() 如果您真的,真的想将按键保持大写)。

关于替换字符串时 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949497/

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