JavaScriptで文字列内の単語を逆順に並べ替える方法
問題
文(センテンス)を表す文字列を受け取り、その中に含まれる単語の順序を逆にして、新しい文字列として返すJavaScript関数を作成する必要があります。
つまり、最後の単語が最初に、最後から2番目の単語が2番目に来るように、すべての単語の並びをひっくり返すということです。
解決のアプローチ
この問題は、標準的な配列メソッドを組み合わせるだけでシンプルに実装できます。手順は以下のとおりです。
- split(' ') — 文字列をスペースで分割し、単語の配列を作成する
- reverse() — 配列の要素の順序を反転させる
- join(' ') — 反転した配列をスペースで連結し、再び文字列に戻す
コード例
以下が実際のコードです。
const str = 'this is some random string text';
const reverseWords = (str = '') => {
const strArr = str.split(' ');
strArr.reverse();
const reversedStr = strArr.join(' ');
return reversedStr;
};
console.log(reverseWords(str));出力
コンソールには以下のように出力されます。
text string random some is this
ワンライナーで書く場合
メソッドチェーンを活用すれば、同じ処理を1行で簡潔に記述することも可能です。
const reverseWords = (str = '') => str.split(' ').reverse().join(' ');どちらの書き方でも結果は同じですが、処理の中身が明確で読みやすい点では、ステップごとに変数へ格納する前者のスタイルも学習用途において有効です。
-
JavaScriptで数値と文字数が一致する文字列を検証する方法
問題文字列 str を引数として受け取るJavaScript関数を作成することを考えます。この関数は、文字列内の英字部分を、その直前にある数字に基づいて検証する必要があります。具体的には、文字列を数字で分割し、各数字とそれに続く部分文字列の文字数を比較します。すべての組み合わせが一致していれば、その文字列は有効であるとして true を返し、一箇所でも不一致があれば false を返します。例えば、以下のような文字列を見てみましょう。5hello4from2meこの文字列に対しては、true を返す必要があります。なぜなら、数字で分割すると「hello」「from」「me」という3つの部分文字
-
JavaScriptで文字列内のアルファベットだけを反転する方法
問題の概要JavaScriptで、アルファベットといくつかの特殊文字(記号)が混在する文字列 str を受け取る関数を作成することを求められています。この関数は、入力文字列をもとに新しい文字列を返します。その際のルールは次のとおりです。アルファベット以外の文字(記号・数字など)は、元の位置にそのまま留まります。アルファベットの文字だけが、互いに反転した位置へ移動します。入力例と出力例たとえば、関数への入力が以下だった場合を考えてみましょう。入力const str = k_lmn_opq;出力const output = q_pon_mlk;「_」という記号は位置が変わっておらず、アルファベット