javascript - 数组中的元素没有改变值
问题描述
我的函数旨在将每个单词的第一个字母大写,但在 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
不修改原始元素但返回更新后的值,因此您需要将其分配回该特定字符串索引以进行修改。
推荐阅读
- c# - SQLite 获取 int 而不是 float
- javascript - 将材料 ui 小吃栏附加到正文
- rust - 初始化需要相互通信的对象网络的技术是什么?
- java - android从手机相册中获取图像并将其存储在sqlite数据库中
- list - 在 Flutter 应用中从实时数据库中搜索用户
- javascript - JS - 使用 javascript 自定义 html 选择控件
- java - Java Jackson json 到对象反序列化。如何处理 OWASP 不安全的反序列化?
- python - 我收到“DLL 加载失败:找不到指定的模块”。将 Cython 与 Numpy 程序一起使用时
- laravel - 跟踪从一个控制器到另一个控制器的变量
- php - PHPMailer 表单不出错或发送