JS字符串交替替换问题:如何实现指定位置字符替换为!和?
解决JavaScript字符串替换问题:从T!d!y到T!d?y
你的代码目前会把字符串"Teddy"中索引1和3的字符都替换成!,所以得到T!d!y。要得到T!d?y,需要区分这两个位置的替换字符:
方案一:直接指定索引替换(最直观)
function change(str) { const newString = str.split(""); newString[1] = "!"; // 替换第二个字符(索引1)为! newString[3] = "?"; // 替换第四个字符(索引3)为? return newString.join(""); } console.log(change("Teddy")); // 输出T!d?y
方案二:保留循环并添加判断
如果想通过循环实现,可以在循环里判断当前索引,对应替换不同符号:
function change(str) { const newString = str.split(""); for (let i = 1; i < newString.length - 1; i += 2) { newString[i] = i === 1 ? "!" : "?"; } return newString.join(""); } console.log(change("Teddy")); // 输出T!d?y
补充说明
- 给
newString加上const声明,避免创建全局变量,这是JS的良好编码习惯。 - 字符串索引从0开始,
"Teddy"的索引对应:0=T,1=e,2=d,3=d,4=y,替换索引1和3就能得到目标结果。
内容的提问来源于stack exchange,提问作者Hazel D
相关产品推荐
相关产品推荐

