JavaScriptで文字列内の各単語を反転させる方法
問題の概要
空白(スペース)を含む可能性のある文字列を引数として受け取るJavaScript関数を作成する必要があります。
この関数は、まず文字列をスペースで単語ごとに分割し、それぞれの単語内の文字順序を逆にしてから、再度結合して新しい文字列として返します。
たとえば、入力文字列が次の場合:
const str = 'this is a word';
期待される出力は以下のとおりです。
const output = 'siht si a drow';
解決策:split・reverse・joinを活用する
この問題は、文字列操作の基本である split()、reverse()、join() の3つのメソッドを組み合わせることで、簡潔に解決できます。
処理の手順は以下のとおりです。
- split(' '): 文字列をスペースで区切り、単語の配列を作成する
- reverse(): 各単語をさらに1文字ずつに分解し、配列の要素順を反転させる
- join(''): 反転した文字を連結して、単語の形に戻す
最後に、処理済みの単語配列をスペースで結合すれば完成です。
コード例
const str = 'this is a word';
const reverseWords = (str = '') => {
const strArr = str.split(' ');
for (let i = 0; i < strArr.length; i++) {
let el = strArr[i];
strArr[i] = el
.split('')
.reverse()
.join('');
}
return strArr.join(' ');
};
console.log(reverseWords(str));コンソールには次のように出力されます。
siht si a drow
補足:mapを使ったより簡潔な書き方
forループの代わりに map() メソッドを使用すると、さらに読みやすく簡潔なコードになります。
const reverseWords = (str = '') =>
str
.split(' ')
.map(word => word.split('').reverse().join(''))
.join(' ');
console.log(reverseWords('this is a word')); // 'siht si a drow'どちらのアプローチでも結果は同じですが、map() を使った方法の方が意図が明確で、モダンなJavaScriptらしいスタイルと言えるでしょう。
-
JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説
JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>
-
JavaScriptで文字列内の文字を英字・数字・特殊文字に再グループ化する方法
問題文字列 str を第一引数(唯一の引数)として受け取る JavaScript 関数を作成する必要があります。この文字列には、次の3種類の文字が含まれる可能性があります。英字:(A-Z)、(a-z)数字:0〜9特殊文字:上記以外のすべての文字関数は文字列を先頭から順に走査し、ちょうど3つの要素からなる配列を構築します。1番目の要素には文字列に含まれるすべての英字、2番目には数字、3番目には特殊文字を格納し、それぞれ元の文字列内での出現順(相対的な順序)を維持します。最後にこの配列を返します。例えば、関数への入力が次の場合を考えてみましょう。入力const str = thi!1s is S@