給定一個字串,我應該將所有小寫字母變為大寫,反之亦然。我試過這個,但無法弄清楚為什么它是錯誤的。輸出給了我:無法讀取未定義的屬性 .toLowerCase()。
function SwapCase(str) {
let cap=str.toUpperCase
let low=str.toLowerCase
let arr=str.split("")
let result=[]
for(var i=0; i<=arr.length;i ){
for(var j=0; j<=cap.length;j ){
for( var k=0; k<=low.length;k ){
if(arr[i]===cap[j]){
result.push(arr[i].toLowerCase())
}
if(arr[i]===low[k]){
result.push(arr[i].toUpperCase())
}
}
} }
return result.join(" ")
}
uj5u.com熱心網友回復:
這段代碼有多個問題,
陣列不應該運行到長度,所以它應該
<代替<=不需要3個回圈
result.join 應該加入一個空字串而不是空格
意圖無處不在。
請參閱下面的更正代碼:
function SwapCase(str) {
let cap=str.toUpperCase()
let low=str.toLowerCase()
let arr=str.split("")
let result=[]
for(var i=0; i<arr.length;i ){
if(arr[i]===cap[i]){
result.push(arr[i].toLowerCase())
}
if(arr[i]===low[i]){
result.push(arr[i].toUpperCase())
}
}
return result.join("")
}
console.log(SwapCase("heLLo"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/442501.html
標籤:javascript
