所以,就我自己的知识,也因为我喜欢从不同的 Angular 看问题...... 我有以下 Javascript 代码,出于这个问题的意图和目的,它只会接收格式如下的字符串:“wordone wordtwo”:
function inName(inputName) {
return inputName.split(" ")[1].toUpperCase();
}
但是,这只返回了我想要的一半(“WORDTWO”)。我希望通过一次更改返回原始字符串:通过 toUpperCase(); 返回的以空格分隔的第二个单词;然后重新连接到未触及的第一个单词。 我还想不必要地在返回线上运行所有操作。我的大脑说这是可能的,因为编译器如何从左到右读取该行并根据已解决的问题对可用成员函数进行调整。 Javascript 中的一切都是对象,对吗? 出于我自己的好奇心帮助我,或者用我自己的误解来打击我。 这是使用“正常”语句解决上述问题的版本:
function inName(inputName) {
var nameArray=inputName.split(" ");
nameArray[1]=nameArray[1].toUpperCase();
return nameArray.join(" ");
}
最佳答案
一行包含 substr
、indexOf
和一个变量动态 ;-)
function inName(inputName) {
return inputName.substr(0, (index = inputName.indexOf(' '))) + inputName.substr(index).toUpperCase();
}
关于Javascript 不必要的紧凑数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33836153/