【发布时间】:2017-03-29 02:59:52
【问题描述】:
解决以下问题:
创建一个名为alienLanguage 的函数,其中输入为str,输出应将除每个单词的最后一个字母外的所有字母大写
alienLanguage("My name is John") 应该返回 "My NAMe Is JOHn"
这是我写的代码:
function alienLanguage(str){
var words = str.toUpperCase().split(' ').map(function (a) {
return a.replace(a[a.length - 1], a[a.length - 1].toLowerCase())
});
return words.join(' ');
}
所有示例测试用例均有效,但以下情况除外:
Expected: '\'THIs Is An EXAMPLe\'', instead got: '\'THIs Is An eXAMPLE\''
为什么eXAMPLE中的e变成小写了?不是所有东西都应该自动变成大写吗?
编辑:我刚刚意识到有 2 个e,第一个正在被替换。如何替换最后一个e?最后一个字符不是已经指定了吗?
【问题讨论】:
-
你想要赋值而不是替换。
-
问题是,示例中有两个 e - 开头和结尾 ... eagle 失败 ... edge 和 abba、otto 和 trumpet 也是如此 - 看到模式了吗?
标签: javascript replace