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

【JavaScript】文字列内のすべての単語の先頭に指定した文字を追加する方法

はじめに

本記事では、2つの文字列を引数として受け取り、1つ目の引数の文字列と同じ内容でありながら、すべての単語の先頭に2つ目の引数の文字列を付加した新しい文字列を返す関数をJavaScriptで作成する方法を解説します。

具体的なイメージは以下のとおりです。

入力 → 'hello stranger, how are you', '@@'
出力 → '@@hello @@stranger, @@how @@are @@you'

また、2番目の引数が省略された場合には、デフォルト値として「#」が自動的に適用される仕様とします。

実装コード

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

const str = 'hello stranger, how are you';
const prependString = (str, text = '#') => {
  return str
    .split(" ")
    .map(word => `${text}${word}`)
    .join(" ");
};
console.log(prependString(str));
console.log(prependString(str, '43'));

処理の流れ

この関数の仕組みを順を追って確認しましょう。

  • split(" "):元の文字列をスペースで区切り、単語ごとの配列に変換します。
  • map():配列内の各単語に対して、テンプレートリテラルを用いて先頭に指定した文字列(text)を結合します。
  • join(" "):処理後の配列を再びスペース区切りの1つの文字列へと連結し直します。

さらに、デフォルトパラメータ text = '#' を設定しているため、第2引数が渡されなかった場合でもエラーが発生することなく、自動的に「#」が各単語の先頭に付与されます。このようにデフォルトパラメータを活用すると、関数の柔軟性と安全性が向上します。

実行結果

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

#hello #stranger, #how #are #you
43hello 43stranger, 43how 43are 43you

まとめ

splitmapjoin を組み合わせる方法は、文字列内の各単語に対して一括処理を行う際の定番パターンです。今回のような接頭辞の追加だけでなく、単語ごとの置換やハッシュタグ形式への変換など、さまざまな場面に応用できます。ぜひ実際の開発でも活用してみてください。

  1. JavaScriptで不正な時間文字列(HH:MM:SS)を正規化して修正する方法

    JavaScriptでは、「HH:MM:SS」形式の時間文字列を扱う場面がよくあります。しかし、時間の加算処理などで計算ミスが発生すると、分や秒が60を超えてしまう「壊れた」時間文字列が生成されることがあります。この記事では、そうした不正な時間文字列を正しく正規化する方法を解説します。 課題:壊れた時間文字列とは 今回求められるのは、JavaScriptで「HH:MM:SS」形式の時間文字列を受け取り、必要な修正を加えた上で、正しい時間文字列として返す関数を作成することです。 問題になるのは、加算処理のバグによって、次のような不正な値が含まれてしまうケースです。 MM(分)の部分が60を超え

  2. 【Java入門】文字列から各単語の最初の文字だけを抽出して出力する方法

    JavaにおけるStringクラスは、文字列を表すために使用されるクラスです。Javaプログラム内に記述されたすべての文字列リテラルは、Stringクラスのインスタンスとして扱われます。また、Stringオブジェクトは定数であり、一度生成するとその値を後から変更することができません。この性質は「不変(イミュータブル)」と呼ばれます。 文字列の中から各単語の最初の文字だけを取り出して出力したい場合は、以下のようなプログラムで実現できます。 サンプルコード public class FirstCharacterPrintTest { public static void main(Stri