JavaScript子数组迭代

JavaScript子数组迭代,javascript,arrays,loops,mapping,sub-array,Javascript,Arrays,Loops,Mapping,Sub Array,我想把字符串中每个单词的第一个字母大写 我想知道为什么这不起作用: function titleCase(str) { str = str.toLowerCase().split(" "); for(let i = 0; i<ar.lrngth;i++){ ar[i][0] = ar[i][0].toUpperCase(); } return ar; } console.log(titleCase("I'm a little tea

我想把字符串中每个单词的第一个字母大写

我想知道为什么这不起作用:

function titleCase(str) {
  str = str.toLowerCase().split(" ");
  for(let i = 0; i<ar.lrngth;i++){
    ar[i][0] = ar[i][0].toUpperCase();
  }
  return ar;
}

console.log(titleCase("I'm a little tea pot"));
我想知道是否有任何一行程序也可以这样做:对子阵列的元素执行相同的操作,看看是否有效:

  function capitalize(text) {
    let str = text.toLowerCase();
    str = str.replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase());

  ;    return str;
  };

字符串在JavaScript中是不可变的,它不是字符数组

const str=“Test”;
str[0]=“K”;

console.log(str)下面是另一种将句子中的所有单词大写的方法。

const titleCase=(str)=>{
让initValue=str[0].toUpperCase();
for(设i=1;i控制台日志(结果)这里有一个es6风格的好答案-

此外,我认为它不起作用的原因是您的代码试图更改原语值
str[I][0]
非引用类型变量
str
的数组元素


for(让i=0;i在你的代码中,ar没有定义。还有
for(让i=0;我能回答你的问题吗?@MajedBadawi是的,它确实解决了问题,我想知道我的代码在银行里什么地方不起作用,你能解释一下为什么它不起作用吗
str[i][0]=str i][0]。toUpperCase()
@Majd reason补充道:谢谢你,这正是我要找的
  function capitalize(text) {
    let str = text.toLowerCase();
    str = str.replace(/(^\w{1})|(\s{1}\w{1})/g, match => match.toUpperCase());

  ;    return str;
  };
let aa = "i'm"
aa[0] = "I" // #2
console.log(aa) // "i'm"
const aa = ["i","'","m"]
aa[0] = "I"
console.log(aa) // ["I","'","m"]