Javascript 将字符串转换为大写和小写

Javascript 将字符串转换为大写和小写,javascript,string,Javascript,String,我正在开发一个程序,它接受一个字符串,拆分它,返回第一个字符串,第一个字母大写,第二个字符串,所有字母大写。代码如下: var name = "ThEoDORe RoOseVElT"; function nameChanger(oldName) { var finalName = oldName; var splitNames = finalName.split(" "); var secondName = splitNames.pop(); var fir

我正在开发一个程序,它接受一个字符串,拆分它,返回第一个字符串,第一个字母大写,第二个字符串,所有字母大写。代码如下:

var name = "ThEoDORe RoOseVElT";

function nameChanger(oldName) {
    var finalName = oldName;

    var splitNames = finalName.split(" ");

    var secondName = splitNames.pop();
    var firstName = splitNames;

    var secondName2 = secondName.toUpperCase();
    var firstName2 = firstName.toLowerCase();

    var finalName = firstName + " " + secondName;

    return finalName; };

给定的错误状态为“Uncaught”和“TypeError:undefined不是函数”。我知道我的问题是toUpperCase()和toLowerCase()方法的第11行和第12行,但我不知道为什么

当前出现的错误是因为
firstName
变量包含数组而不是字符串。你可以通过改变这个来解决这个问题

var firstName = splitNames;
……为此:

var firstName = splitNames.pop();

但是,您应该添加一些就地签入,而不是仅仅假设传入的名称也将采用“word”格式。

即使在对其调用
pop()
之后,
splitNames
仍然是一个数组,如果将其分配给
firstName
firstName
将是同一个数组,它没有
toLowerCase()
方法

尝试:


splitNames
分配给firstName时,就是将数组分配给firstName,而数组没有小写或大写方法

var firstName=splitNames.pop()
此外,如果您已经声明了一个变量,并且忘记在第二行到最后一行添加新名称,则不需要重用var:

finalName=firstName2+secondName2;

谢谢您的回答。按我想象的那样工作。
var secondName = splitNames.pop();
var firstName = splitNames.pop();

var secondName2 = secondName.toUpperCase();
var firstName2 = firstName.toLowerCase();
function titleCase(str) {
 return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
}