0

私はEloquent JavaScriptを使って作業していて、この練習に遭遇しました:

2 つの引数 (どちらも文字列) を取る startsWith という関数を作成します。最初の引数が 2 番目の引数の文字で始まる場合は true を返し、それ以外の場合は false を返します。

彼らが出した答えは次のとおりです。

function startsWith(string, pattern) {
return string.slice(0, pattern.length) == pattern;
}

show(startsWith("rotation", "rot"));

charsしかし、開始文字を取得して各文でテストし、開始文字が各文で同じかどうかを吐き出す、より完全なプログラムが必要でした。私はJavaScriptとプログラミングが初めてなので、助けていただければ幸いです! これが私がうまくいくと思ったものです:

var sentenceOne = "Pretty kitty doesn't like you!";
var sentenceTwo = "Preachy cat loves you.";
function startsWith(chars) {
  return (sentenceOne.slice(0, chars.length) == chars) == (sentenceTwo.slice(0, chars.length) == chars);
}
show(startsWith("pre"));
4

2 に答える 2

0

あなたはほとんどそれを持っていましたが、関数にsentenceOneandを介してパラメーターを渡す必要があります (それらを and とsentenceTwo呼びましょう)。そうでなければ、その情報は関数の範囲外です!firstSentencesecondSentence

var sentenceOne = "Pretty kitty doesn't like you!";
var sentenceTwo = "Preachy cat loves you.";
function startsWith(chars, firstSentence, sencondSentence) {
  return (sentenceOne.slice(0, chars.length) == chars) == (sentenceTwo.slice(0, chars.length) == chars);
}
show(startsWith("pre"), sentenceOne, sentenceTwo);
于 2013-07-24T01:56:17.740 に答える
0

与えられた答えはかなり徹底的です。次の 2 つの文を指定すると、次のように簡単に実行できます。

var sentenceOne = "Pretty kitty doesn't like you!";
var sentenceTwo = "Preachy cat loves you.";

show(startsWith(sentenceOne, "Pre") === startsWith(sentenceTwo, "Pre"));

2 つの文字列が同じパターンで始まるかどうかを単純にチェックする、まったく新しい関数は必要ありません。デモを参照してください: http://jsfiddle.net/p3unn/1/


もう 1 つの方法は、2 つの文とパターンが与えられた場合に、最初の文字が同じかどうかをテストすることです。

function startWith(sentenceOne, sentenceTwo, pattern) {
    return !(sentenceOne.indexOf(pattern) || sentenceTwo.indexOf(pattern));
}

これで、次のように簡単に実行できます。

show(startWith(sentenceOne, sentenceTwo, "Pre"));

デモを参照してください: http://jsfiddle.net/p3unn/2/

于 2013-07-24T01:41:56.687 に答える