JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列が指定した文字で終わっているかどうかを判定する方法

本記事では、第一引数に文字列、第二引数に一つの文字を受け取るJavaScript関数の作成方法を解説します。

この関数は、第一引数で指定された文字列が、第二引数で指定された文字で終わっているかどうかを判定します。ただし、ES6以降のメソッドや外部ライブラリを使用せずに実装することが条件です。

実装コード

以下がそのコード例です。

const str = 'This is a string';
const checkEnding = (str = '', char = '') => {
  // 文字列の最後の文字を取得するヘルパー関数
  const getLast = (str = '') => {
    const { length } = str;
    return str[length - 1];
  };
  return getLast(str) === char;
};
console.log(checkEnding(str, 'g'))
console.log(checkEnding(str, 'h'))

出力結果

コンソールには以下のように表示されます。

true
false

コードの解説

この実装のポイントを順番に見ていきましょう。

1. ヘルパー関数getLast()

内部に定義したgetLast関数は、文字列から最後の一文字を取り出す役割を担います。lengthプロパティを使って文字列の長さを取得し、インデックスlength - 1(配列と同様に文字列も0始まりのため)で末尾の文字にアクセスしています。

2. 厳密等価演算子による比較

===(厳密等価演算子)を使って、取得した末尾の文字と第二引数の文字が一致するかどうかを判定します。これにより、trueまたはfalseが返されます。

3. デフォルト引数による安全策

引数が渡されなかった場合に備え、デフォルト値として空文字列''を設定しています。これにより、意図しないエラーの発生を防げます。

補足:ES6のendsWith()メソッドについて

なお、ES6以降の環境ではString.prototype.endsWith()メソッドを使えば、この処理を一行で実現できます。

console.log(str.endsWith('g')); // true

しかし、今回の条件では「ES6やライブラリのメソッドを使わない」ことが求められているため、上記のような手動での実装が必要になります。アルゴリズムの学習やコーディングテストの練習としても良い題材でしょう。

  1. JavaScriptで文字列内のドット(.)をダッシュ(-)に置き換える方法

    問題 今回は、文字列を引数として受け取り、その文字列中に含まれるすべてのドット(.)をダッシュ(-)に置き換えた新しい文字列を返すJavaScript関数を作成します。 入力例 const str = this.is.an.example.string; 出力例 const output = this-is-an-example-string; ご覧のとおり、元の文字列 str 内のすべてのドット(.)がダッシュ(-)へと置き換えられています。 サンプルコード 以下が実際の実装例です。 const str = this.is.an.example.string; const replaceD

  2. 【PHP】文字列が指定した文字列で終わっているかどうかを判定する方法

    文字列が指定された文字列(サフィックス)で終わっているかどうかを判定する関数を作成してみましょう。判定に成功した場合は TRUE を、失敗した場合は FALSE を返す仕様です。 関数の構文は次のとおりです。 endFunc(str, lastStr) 判定に使用するパラメータは以下の2つです。 str − 検査対象となる文字列 lastStr − 対象文字列の末尾で検索するテキスト 実装例 次のコードは、文字列の末尾が指定した文字列と一致しているかどうかを確認する例です。 <?php     function endFunc($str, $l