Javascript 在这种情况下,多维数组值赋值是如何工作的?

Javascript 在这种情况下,多维数组值赋值是如何工作的?,javascript,arrays,string,uppercase,Javascript,Arrays,String,Uppercase,为什么此函数不返回每个单词的第一个字母大写的字符串 function titleCase(str) { str = str.split(' '); for (var i = 0; i < str.length; i++) { str[i][0] = str[i][0].toUpperCase(); console.log(str); } return str; } 功能滴定酶(str){ str=str.spl

为什么此函数不返回每个单词的第一个字母大写的字符串

function titleCase(str) {
     str = str.split(' ');
     for (var i = 0; i < str.length; i++) {
         str[i][0] = str[i][0].toUpperCase(); 
         console.log(str);
     }
     return str;
}
功能滴定酶(str){
str=str.split(“”);
对于(变量i=0;i
您需要用新字符串替换整个数组元素。您所做的只是修改字符串,而不是修改数组中的内容

然后需要再次加入()数组以获得返回的字符串

function titleCase(str) {
     str = str.split(' ');
     for (var i = 0; i < str.length; i++) {
         str[i] = str[i][0].toUpperCase() + str[i].slice(1); 
       // ^^ reassign array element with new string ^^   
     }
     return str.join(' ');
}
功能滴定酶(str){
str=str.split(“”);
对于(变量i=0;i
此函数不返回每个单词第一个字母大写的字符串的原因是字符串是不可变的

不能更改字符串中的字符

因此,这在javascript中不起作用:

str[i][0] = 'c';
这不会更改字符串
str[i]

但是,为了实现您的目标,您可以创建一个首字母大写的新字符串,并将其分配给包含字符串的变量。

用于将字符串的第一个字符转换为大写的“CapitalText”方法

String.prototype.capitalizeText = String.prototype.capitalizeText || function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
 // return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase();
}

function titleCase(str) {
     str = str.split(' ');

     for (var i = 0; i < str.length; i++) {
         str[i] = str[i].capitalizeText(); 
         console.log(str[i]);
     }

     return str.join(" ");
}

$(document).ready(function(){
        $('#divResult b').text(titleCase("testing words"));
});
String.prototype.capitalText=String.prototype.capitalText | |函数(){
返回this.charAt(0.toUpperCase()+this.slice(1);
//返回this.charAt(0.toUpperCase()+this.slice(1.toLowerCase();
}
功能滴定酶(str){
str=str.split(“”);
对于(变量i=0;i

tythis:

function titleCase(str) {
     str = str.split(' ');
     for (var i = 0; i < str.length; i++) {
         str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1); 
         console.log(str[i], 'i');
     }
     return str;
}
这是单词的其余部分,没有第一个字母

str[i].slice(1); 

嗨,欢迎来到苏。请编辑您的答案以包含函数的输出内容。简单方法:
str.replace(/\b[a-z]/gi,(c)=>c.toUpperCase())
code-only答案在没有答案的情况下不会真正回答问题explanation@charlietfl:完成。谢谢:)我的错,在评论这个之前没有看到上面的其他答案
str[i].slice(1);