javascript - 使用'map'方法修改内部内容,javascript
问题描述
你好,
我正在练习 Freecodecamp.com 的基本算法。
说明如下。
返回提供的字符串,每个单词的首字母大写。确保单词的其余部分是小写的。
出于本练习的目的,您还应该将“the”和“of”等连接词大写。
这是我的代码。
const titleCase = str => {
let result = str.split(' ');
result = result.map(t => {
t = t.toLowerCase();
t[0] = t[0].toUpperCase();
return t;
});
return result.join(' ');
};
console.log(titleCase("I'm a little tea pot"));
结果
i'm a little tea pot
这就是我的想法。
- 按空格将整个字符串提取成片段。
- 使其小写。
- 仅将第一个字母大写。
- 返回结果。
但是,问题是 line:5 不会影响结果。第一个字母不变。我错过了什么,对吧?似乎我误解了有关地图方法的一些概念。你能给一些建议来解决这个问题吗?
提前致谢。
解决方案
MDN 字符串文档中记录了您的代码无法正常工作的原因。
当使用括号表示法进行字符访问时,尝试删除这些属性或为这些属性赋值将不会成功。所涉及的属性既不可写也不可配置。
另一种方法是将转换为大写后的第一个字符与剩余的字符串(不包括第一个字符)连接起来。
const titleCase = str => {
return str.toLowerCase()
.split(' ')
.map(w => `${w[0].toUpperCase()}${w.substring(1)}`)
.join(' ');
};
console.log(titleCase("I'm a little tea pot"));
推荐阅读
- flutter - 将图标在一行中垂直居中对齐:Flutter
- c# - SQL 表未生成
- dolphindb - 如何清除dolphindb中过期的流表数据
- azure-devops - 构建失败的 Azure Devops 管道能否在使用 CI 触发时向用户显示最后一次提交?
- android - 如何在移动设备上获取栏之间的视口高度?(反应)
- javascript - 如何在 npm 模型的反应代码中访问 Makehuman.js
- jenkins - 如何配置为使用给定访问令牌的 GitLab 组自动填充 Jenkins 选择参数
- c# - 如何在一行上显示一个字符串x次C#
- android - Compose BasicTextField 的问题:
- python-3.x - asyncio.create_task 创建的任务的容器