2016-11-09 4 views
-2

このコンセプトには苦労しています。関数のポイントは、2つのパラメータを取り、targetパラメータがstrパラメータの最後であるかどうかをテストすることです。Javascriptで(-'string'.ength)は何ですか

のでend('Sebastion', 'ion')trueを返すとend('Sebastion', 'eon')false

戻ってくる私はこの解決策を見つけたと-target.lengthが何をしているのか理解していないとのマッチング方法をターゲットに、それはパラメータをテストしています。

私はJavaScriptがかなり新しくなっているので、誰かがこれがどのように機能しているかについての洞察があればそれはすばらしいことになります。

function end(str, target) { 
    return (str.substr(-target.length) === target); 
} 
+2

新しいかどうかは、[documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr)を読むことは常に役に立ちます。 – Teemu

+0

試しましたか?あなたはその文書を読んだのですか? –

+0

私はドキュメントを読んでいないと、一般的に「これは何ですか?」のためにオーバーフローすることはありませんでした。あなたのようなコメントのために質問してください。私はまだそれの説明を読んだ後に何をしているのか分からなかった。 – Derrick

答えて

0

str.substr(-target.length)を評価しましょう。

rules of precedenceに続いて、-target.lengthを最初に評価する必要があります。

先にも優先ルールに従って、target.lengthが最初に評価されています。これは、「会員アクセス」が優先順位表の上部にあるためです。あなたの例では、これは3と評価されます。

これを否定して-3を取得してください。

のJavaScript substr機能は、このdocumentation on MDNでこれを持っている:

開始:

わかりましたが、今、私たちはstr.substr(-3)の結果を評価する必要がある場所を文字の抽出を開始します。負の数が指定された場合、strLength + startとして扱われます.strLengthは文字列の長さです(たとえば、startが-3の場合はstrLength - 3として扱われます)。

startが負の場合、substr ()は文字列の最後から文字インデックスとして使用します。 startが負で、abs(start)が文字列の長さより大きい場合、substr()は開始インデックスとして0を使用します。注:start引数の負の値の処理については、Microsoft JScriptではサポートされていません。

ソース文字列の最後の3文字が必要です。

+0

それは完璧な意味合いがあります。ありがとうございました。 – Derrick

関連する問題