任何人都可以解释此代码的第3行?

问题描述 投票:-3回答:2

任何人都可以解释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;
}
javascript
2个回答
0
投票
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)。除非那个charz 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)


1
投票

如果字母是z或Z,则返回'a',否则返回字母表中的下一个字母。

© www.soinside.com 2019 - 2024. All rights reserved.