示例,輸入:
aasddeeeaa
結果:
AaSDdEeeAa
我將字串拆分為一個字母陣列,然后必須檢查該字母是否再次出現
uj5u.com熱心網友回復:
您可以使用正則運算式輕松完成此操作。
function uppercaseSequence(string) {
return string.replace(/(\w )\1 /g, (letters) => {
const [firstLetter, ...rest] = letters;
return [firstLetter.toUpperCase(), ...rest].join('');
});
}
console.log(uppercaseSequence('aasddeeeaa')); // AasDdEeeAa
這將使用 將所有重復字符分組\1 ,然后將重復字母組中的第一個字母大寫。
如果你想將自己的字母與大寫匹配,那么你可以這樣做
function uppercaseSequence(string) {
return string.replace(/(?:(\w )\1 |\w)/g, (letters) => {
const [firstLetter, ...rest] = letters;
return [firstLetter.toUpperCase(), ...rest].join('');
});
}
console.log(uppercaseSequence('aasddeeeaa')); // AaSDdEeeAa
uj5u.com熱心網友回復:
這是您的問題的解決方案。
let oldString = "aasddeeeaa"
let newString = ""
for(let charNb =1;charNb < oldString.length-1; charNb ){
let char = oldString[charNb]
let previousChar = oldString[charNb-1]
if(char === previousChar){
newString = char
}
if(char !== previousChar){
newString = char.toUpperCase()
}
}
console.log(newString)
您應該對此類問題使用正則運算式,但這可能已經足夠了。其他人也可能更容易理解。
我希望這是你所需要的。
uj5u.com熱心網友回復:
在您的示例中, S 大寫但只有一次出現?
您可以使用正則運算式輕松地做到這一點:
const regexForRepeatedChar = /(.)\1{1,}/g;
'aasddeeeaa'.replace(regexForRepeatedChar, function(str) {
return str[0].toUpperCase() str.slice(1);
})
uj5u.com熱心網友回復:
這邊走
const Cap1stR=s=>[...s].reduce((r,c,i,{[i-1]:p})=>r ((p===c)?c:c.toUpperCase()),'')
console.log( Cap1stR('aasddeeeaa') )
對于那些無法理解此代碼的人
| ? | 做 |
|---|---|
| [...] | 將您的字串更改為陣列。'aasddeeeaa' -> ['a','a','s','d','d','e','e','e','a','a'] 展開 語法 (. ..) |
| []。降低() | Array.prototype.reduce() |
| {[i-1]:p} | 將p分配給 [i-1] 陣列元素 |
| =>r ((p===c)?c:c.toUpperCase()) | if ( p === c ) { return r c } else { return r c.toUpperCase() } 條件(三元)運算子 |
| 也可以看看 | 箭頭函式運算式 |
uj5u.com熱心網友回復:
const values = "aasddeeeaa"
let str = ""
let letter = 0;
for (let data of values.split("")) {
if (letter == 0) {
str = data.toUpperCase();
} else {
let prev = values.split("")[letter - 1];
if (data.toLowerCase() != prev.toLowerCase()) {
str = data.toUpperCase()
} else {
str = data.toLowerCase()
}
}
letter ;
}
console.log("Answere =>", str)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/339826.html
標籤:javascript 数组 细绳 分裂
