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

JavaScriptで文字列内の指定した文字の直後にある次の文字を取得する方法

課題

JavaScriptで、文字列 str と1文字の char を引数として受け取る関数を作成する必要があります。

この関数の役割は、元の文字列の中で char が現れる箇所をすべて見つけ、それぞれの直後に存在する文字(存在する場合のみ)を取り出して、それらを連結した新しい文字列を返すことです。

例えば、対象の文字が文字列の末尾に位置している場合、その直後に文字は存在しないため、結果には含まれません。

実装例

以下が実際のコードです。

const str = 'this is a string';
const letter = 'i';

const findNextString = (str = '', letter = '') => {
    let res = '';
    for(let i = 0; i < str.length; i++){
        const el = str[i];
        const next = str[i + 1];
        if(letter === el && next){
            res += next;
        };
    };
    return res;
};

console.log(findNextString(str, letter));

コードの解説

この関数は以下の手順で動作します。

  • ループ処理: 文字列の長さ分だけ繰り返し処理を行い、各位置の文字 el とその次の文字 next を取得します。
  • 条件判定: 現在の文字が検索対象の letter と一致し、かつ次の文字が存在する(undefined でない)場合にのみ処理を進めます。
  • 結果の構築: 条件を満たした場合、次の文字を結果用の変数 res に追加していきます。

この仕組みにより、文字列の末尾に検索対象の文字がある場合でもエラーが発生せず、安全に処理されます。

出力結果

ssn

コンソールには「ssn」と表示されます。

これは、元の文字列「this is a string」の中で「i」が現れる位置の直後にある文字を順番に並べたものです。具体的には、「this」の「i」の次は「s」、「is」の「i」の次も「s」、「string」の最初の「i」の次は「n」となり、これらが連結された結果になっています。


  1. JavaScriptでアルファベットの1始まりのインデックスを取得する方法

    問題JavaScriptで関数を作成する必要があります。この関数は、小文字の英字アルファベット1文字を受け取り、その文字がアルファベットの中で何番目に位置するかを「1始まり」のインデックスとして返します。例えば、a なら 1、j なら 10 を返すといったイメージです。無効な入力が渡された場合は -1 を返してエラーを通知すると親切です。実装の考え方最もシンプルな方法は、先頭に半角スペースを付けたアルファベット文字列「 abcdefghijklmnopqrstuvwxyz」を基準(レジェンド)として用意することです。こうすることで、スペースが0番目となり、a は1番目、j は10番目というよう

  2. 【JavaScript】反対方向の移動を打ち消して最終的な進行方向を求める方法

    問題1文字ずつの要素からなる配列 arr を唯一の引数として受け取り、配列全体の移動をすべて計算した結果として残る「最終的な方向」を返す JavaScript 関数を作成します。配列に含まれるのは次の4種類の文字のみです。N → 北(North)方向へ単位距離だけ移動S → 南(South)方向へ単位距離だけ移動W → 西(West)方向へ単位距離だけ移動E → 東(East)方向へ単位距離だけ移動各文字はその方向への1単位分の移動を表します。ここで重要なルールとして、配列内で互いに反対向きの組み合わせ、すなわち (S と N) または (E と W) が隣接して現れた場合、それらは互いの移動