任何人都可以解释3号线吗?
function LetterChanges(str) {
var converted = str.replace(/[a-z]/gi, function(char) {
return (char === 'z' || char === 'Z') ? 'a' : String.fromCharCode(char.charCodeAt() + 1);
});
return converted;
}
function LetterChanges(str) {
var converted = str.replace(/[a-z]/gi, function(char) {
return (char === 'z' || char === 'Z') ? 'a' : String.fromCharCode(char.charCodeAt() + 1);
});
return converted;
}
简而言之,LetterChanges
将接受一个字符串,并将字符串中的所有字母(chars
)转换为字母表后面的下一个字母(char
)。除非那个char
是z
orZ
。它将它链接回a
。
这里的匿名功能:
function(char) {
return (char === 'z' || char === 'Z') ? 'a' : String.fromCharCode(char.charCodeAt() + 1);
}
在字符串中的每个字符上运行,可以写成
function(char) {
if(char === 'z' || char ==='Z') {
char = 'a';
} else {
char = char.charCodeAt() + 1;
}
return char;
}
具体来说,第3行是:如果char
是大写或小写z
(char === 'z' || char ==='Z')
然后使它成为a
(? 'a'
),否则使char
成为字母表中的下一个字母。 (: String.fromCharCode(char.charCodeAt() + 1)
)
如果字母是z或Z,则返回'a',否则返回字母表中的下一个字母。