javascript - 数组中的元素不改变值

标签 javascript arrays string

我的函数旨在将每个单词的第一个字母大写,但在 for 循环运行后,数组没有改变。我错过了什么?

function capitalize(str) {
  var splitStr = str.split(' ');
  for (let i = 0; i < splitStr.length; i++) {
    var word = splitStr[i];
    word = word[0].toUpperCase() + word.slice(1);
  }
  return splitStr.join(' ');
}

console.log(capitalize('my test'));

最佳答案

只需将 word = 替换为 splitStr[i] 即可完成

function capitalize(str) {
  var splitStr = str.split(' ');
   
  for (let i = 0; i < splitStr.length; i++) {
    var word = splitStr[i];
    splitStr[i] = word[0].toUpperCase() + word.slice(1);
  }
  return splitStr.join(' ');
}

console.log(capitalize("this is it"));

原因:因为您没有在原始字符串 splitStr 中更新它。 toUpperCase 不会修改原始元素,而是返回更新后的值,因此您需要将其分配回该特定字符串索引来进行修改。

关于javascript - 数组中的元素不改变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50994296/

相关文章:

C 字符串数组

javascript - 需要图像幻灯片放映方面的帮助吗?

java - 从内部存储读取字符串数组

arrays - 在字典数组中查找键值对

javascript - 如何有效地将 MAP.values 传输到数组中?

java - 如何加速在 Java 中进行字符串操作的循环?

java - 如何拆分逗号分隔的字符串?

javascript - 检查用户是否可以在 JS 中看到 Unicode 符号

javascript - 替换 json/jsObject/string 中的多个值

javascript - 存储中 undefined variable : [] and views: [] - Ext-JS 4. 1.1a