gpt4 book ai didi

javascript - 更高效的 JS 大小写交换

转载 作者:行者123 更新时间:2023-11-28 18:53:20 25 4
gpt4 key购买 nike

我是 JS 新手。我将参加 JS 训练营并做一些课前作业。下面是一个 coderbyte 解决方案。请求是:

创建一个函数,在传递字符串时将交换字符串的大小写。

我的解决方案:

function swapCase(someStr){
var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

var upperAlphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];

var idxLower = [];
var idxUpper = [];

someArray = someStr.split("");

//Find out which indexes are lower case
for(var i = 0; i<someArray.length; i++){
for(var j = 0; j<alphabet.length; j++){
if(someArray[i] === alphabet[j]){
idxLower.push(i);
}
}
}

//find out which indexes are upper case
for(var k = 0; k<someArray.length; k++){
for(var m = 0; m<upperAlphabet.length; m++){
if(someArray[k] === upperAlphabet[m]){
idxUpper.push(k);
}
}
}

//convert lower cases to upper
for(var n = 0; n<idxLower.length; n++){
for(var p = 0; p<someArray.length; p++){
if(idxLower[n] === p){
someArray[p] = someArray[p].toUpperCase();
}
}
}
//convert upper cases to lower
for(var q = 0; q<idxUpper.length; q++){
for(var r = 0; r<someArray.length; r++){
if(idxUpper[q] === r){
someArray[r] = someArray[r].toLowerCase();
}
}
}
var newStr = someArray.join("");
console.log(newStr);
}
swapCase("Hello World Sup Bro My Name iS Richard!");

//returns hELLO wORLD sUP bRO mY nAME Is rICHARD!

我知道这是 Eloquent 对立面。谁能使用 JS 基础知识来帮助我理解如何以更简洁的方式进行此练习?

最佳答案

听起来像:对于每个字符,如果它是下位,我想将其设置为上位,如果它是上位,我想将其设置为下位。

这很简单:

function swapCase(str) {
var out = '';
for (var i=0; i<str.length; i++) {
// It's lower, or non-A-Z
if (str[i].toLowerCase() == str[i]) {
out += str[i].toUpperCase();
}
else {
out += str[i].toLowerCase();
}
}
return out;
}

alert(swapCase('Hello World Sup Bro My Name iS Richard!'));

(用 fiddle 来证明这一点。]( http://jsfiddle.net/rudiedirkx/m4mhsyuz/ )

关于javascript - 更高效的 JS 大小写交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095278/

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