無法理解為什么以下函式適用于某些字串,而不適用于與第一個具有相似字符的字串。
const change = (str,y) => (str.toLowerCase().replace(str[y],str[y].toUpperCase()));
console.log(change('London',3)); //lonDon
console.log(change('Lagos',3)); //lagOs
console.log(change('Germany',3)); //gerMany
console.log(change('Dcoder',3)); //Dcoder
console.log(change('Bobby',3)); //Bobby
uj5u.com熱心網友回復:
String.prototype.replace當第一個引數是字串時,該函式替換第一次出現。
您可以拆分字串,將索引更改為大寫,最后加入字符。
const change = (str, y) => {
const lowercase = str.toLowerCase().split("");
lowercase[y] = str[y].toUpperCase();
return lowercase.join("");
};
console.log(change('London',3));
console.log(change('Lagos',3));
console.log(change('Germany',3));
console.log(change('Dcoder',3));
console.log(change('Bobby',3));
uj5u.com熱心網友回復:
"Dcoder" 中的 str[3] 是 'd' 而替換的第一個字符是 'D' ,因此您應該將代碼更改為:
const change = (str,y) => {
str = str.toLowerCase()
str=str.slice(0,y) str[y].toUpperCase() str.slice(y 1)
return str}
uj5u.com熱心網友回復:
或者,以稍微縮短的方式:
const change = (str, n) =>
str.split("")
.map((c,i)=>i==n?c.toUpperCase():c.toLowerCase())
.join("");
['London','Lagos','Germany','Dcoder','Bobby'].forEach(w=>console.log(change(w,3)));
uj5u.com熱心網友回復:
我不確定為什么您的函式沒有按預期作業,但一種可能的解決方法是使用內置的字串方法upper:
def change_case(s):
return s.upper()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497041.html
標籤:javascript 数组 细绳 代替
