-1

文字列「Brian Wade Stacks」を返そうとしています。コードは次のとおりです。

var fixName = function(myName) {

    var partsOfName = [
    part1 = myName.substring(0, 5),
    part2 = myName.substring(5, 8),
    part3 = myName.substring(9, myName.length)
    ];

    part1 = part1.charAt(0).toUpperCase() + part1.slice(1);
    part2 = part2.charAt(5).toUpperCase() + part2.slice(1);
    part3 = part3.charAt(9).toUpperCase() + part3.slice(1);

    return(part1+" "+part2+" "+part3);
}


var myName= "brianwadestacks"
console.log("My name fixed is " + myName);

戻ってきました私の名前は brianwadestacks です

4

2 に答える 2

1

あなたは電話していませんfixName。あなたはそれをする必要があります。

console.log("My name fixed is " + fixName(myName));
于 2013-05-30T03:25:42.980 に答える
0

変数partsOfNameは使用されていないのに、なぜ作成するのでしょうか? また、part1part2 、およびpart3は、宣言されていないため、関数の実行後にグローバル変数として作成されます。part2の部分文字列は、インデックス 9 まで拡張する必要があります (実際には、指定されたインデックスの直前で停止します)。インデックスから末尾までを選択する場合、末尾のインデックスは省略できます。検討:

var part1 = myName.substring(0, 5);
var part2 = myName.substring(5, 9);
var part3 = myName.substring(9);

あなたのコードで:

> part1 = part1.charAt(0).toUpperCase() + part1.slice(1);
> part2 = part2.charAt(5).toUpperCase() + part2.slice(1);
> part3 = part3.charAt(9).toUpperCase() + part3.slice(1);

最初の文字を大文字にしたいので、文字インデックスはすべてゼロにする必要があります。

part1 = part1.charAt(0).toUpperCase() + part1.slice(1);
part2 = part2.charAt(0).toUpperCase() + part2.slice(1);
part3 = part3.charAt(0).toUpperCase() + part3.slice(1);

最後に、宣言が示されている場所では関数式を使用しないでください。微妙な違いがあるため、注意が必要です。

function fixName(myName) {

    var part1 = myName.substring(0, 5);
    var part2 = myName.substring(5, 9);
    var part3 = myName.substring(9);

    part1 = part1.charAt(0).toUpperCase() + part1.slice(1);
    part2 = part2.charAt(0).toUpperCase() + part2.slice(1);
    part3 = part3.charAt(0).toUpperCase() + part3.slice(1);

    return(part1+" "+part2+" "+part3);
}

var myName= "brianwadestacks";
console.log("My name fixed is " + fixName(myName)); // My name fixed is Brian Wade Stacks
于 2013-05-30T04:18:11.230 に答える