["Stack","sTack", "stAck", "staCk", "stack-6ren">
gpt4 book ai didi

javascript - toUpperCase() 映射时出现问题

转载 作者:行者123 更新时间:2023-11-29 10:26:31 26 4
gpt4 key购买 nike

我正在尝试编写一个接受字符串的函数,该字符串将以数组内的“waved”版本返回:

wave("stack") => ["Stack","sTack", "stAck", "staCk", "stack"]

我写了这段代码,但是当我在字符串中有一个双字母时出现了问题:

function wave(word){
let arr = []
word.split("").map(c=> arr.push(word.replace(c, c.toUpperCase())))
return arr
}

console.log(wave("hello"))

wave("hello") 给我 ["Hello", "hEllo", "heLlo", "heLlo", "hellO"]

注意索引 2 和索引 3 是相同的,索引 3 应该是“helLo”,而不是“heLlo”。这是为什么?我该如何解决这个问题?

最佳答案

问题是由于 replace 的调用方式造成的。它总是替换 l 的第一个实例。下面的代码应该可以工作。

function wave(word){
let arr = []
word.split("").map((c, i) => {
let parta = word.substring(0, i);
let partb = word.substring(i + 1);
arr.push(parta + c.toUpperCase() + partb);
});
return arr
}

console.log(wave("stack"));
console.log(wave("hello"));

关于javascript - toUpperCase() 映射时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com