javascript - 为什么字符串数组中的第一个字母不转换为大写?
问题描述
我接受输入字符串"ZpglnRxqenU"
并且必须返回带有该视图的字符串
"Z-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu"
我几乎完成了,但我不知道为什么数组元素中的第一个字母不会变为大写。
function accum(s) {
let str = s.toLowerCase();
let arr = [];
for(let i=0; i<str.length;i++){
arr.push(str[i].repeat(i+1));
arr[i][0].toUpperCase();
}
return arr.join('-');
}
console.log(accum("ZpglnRxqenU"));
// must be "Z-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu"
解决方案
字符串是不可变的,仅使用 .toUpperCase() 不会更新现有字符串,为此您可以尝试以下代码
function accum(s) {
let str = s.toLowerCase();
let arr = [];
for(let i=0; i<str.length;i++){
arr.push(str[i].repeat(i+1));
var [firstLetter, ...rest] = arr[i]
arr[i] = firstLetter.toUpperCase() +rest.join('')
}
return arr.join('-');
}
推荐阅读
- javascript - 如何仅使用 Javacript 中的加速度值计算位移值?
- typescript - 如何推迟打字稿中的通用填充 - 用于 knex 查询?
- pygame - python - 为什么玩家在pygame中与敌人发生碰撞时我的游戏一直冻结
- javascript - Cypress 中的 Onload() 函数
- installation - 如何使用 CMake 安装依赖库?
- swift - 当您观察该密钥时,是否也下载了父密钥?
- django - /BRMapp/view-books/ 处的 AttributeError
- regex - 正则表达式:非贪婪搜索
- r - R 中的 For 循环 - 更改每月回报的序列
- excel - 用“With”和“Do While”替换 Select 语句后,VBA 运行速度非常慢