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

JavaScriptで名・姓・任意のミドルネームからフルネームを組み立てる方法

課題

3つの文字列を受け取るJavaScript関数を作成します。1つ目の引数は「名(first name)」、2つ目の引数は「姓(last name)」、そして3つ目の引数として任意(オプション)の「ミドルネーム」を渡します。

この関数は、受け取った情報をもとに完全な氏名(フルネーム)を組み立てて返す必要があります。ポイントは、ミドルネームが渡されなかった場合でも正しく動作することです。

解決のアプローチ

ここでは次の手順で処理を行います。

1. ミドルネーム引数が未定義(undefined)の場合は空文字列に置き換えます。
2. 名・ミドルネーム・姓を配列に格納します。
3. filter(Boolean)を使って、空文字列などの falsy な値を配列から除外します。
4. join(' ')で要素を半角スペース区切りで連結し、フルネームとして返します。

filter(Boolean)は、配列内の undefined''(空文字列)といった falsy な値を自動的に取り除いてくれるため、ミドルネームの有無にかかわらず余分なスペースが入らないのが利点です。

コード例

const firstName = 'Vijay';
const lastName = 'Raj';

const constructName = (firstName, lastName, middleName) => {
    if (!middleName) {
        middleName = '';
    };
    let nameArray = [firstName, middleName, lastName];
    nameArray = nameArray.filter(Boolean);
    return nameArray.join(' ');
};

console.log(constructName(firstName, lastName));

出力結果

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

Vijay Raj

応用:デフォルト引数を使ったより簡潔な書き方

ES6以降ではデフォルト引数を利用できるため、if文によるチェックを省略してさらに簡潔に記述できます。

const constructName = (firstName, lastName, middleName = '') =>
  [firstName, middleName, lastName].filter(Boolean).join(' ');

このように書くことで、コードの意図が明確になり、可読性も向上します。実際の開発現場でも、表示用の氏名整形などでよく使われるパターンです。

  1. Excelで氏名を姓・名・ミドルネームに分割する2つの方法

    ```html 顧客リストや名簿など、フルネームがひとつのセルにまとめて入力されたデータを扱うことは少なくありません。こうした名前を「名(ファーストネーム)」「ミドルネーム」「姓(ラストネーム)」の3つに分割できれば、並べ替えや絞り込み、集計作業が格段にしやすくなります。Microsoft Excelでは、区切り位置(Delimiter/Separator)機能を使う方法と、数式を使う方法の2通りで氏名を分割できます。 Excelで姓と名を分ける方法 氏名を姓と名に分ける主な目的は、社員や学生などのグループを、姓または名を基準に分類・整理することです。Excelでは、次の2つの方法で対応できま

  2. 【Excel入門】氏名を姓と名に分ける方法|LEFT・RIGHT関数と「区切り位置」機能の使い方

    Excelで名簿や顧客リストなどを管理していると、「1つのセルに入力された氏名を、姓と名の別々のセルに分けたい」という場面によく出会います。これはExcelで非常によくある悩みで、ネットを検索すれば他人が作成したマクロが大量に見つかるでしょう。 しかし、この記事では外部ツールに頼らず、数式を自分で組み立てて、仕組みをきちんと理解しながら氏名を分割する方法をご紹介します。Excelを頻繁に使うなら、少し高度な関数を覚えておくことで、データ処理の幅がぐっと広がります。 「数式は苦手」「もっと手軽な方法がいい」という方は、この記事の後半で解説する「区切り位置」機能のセクションまで読み飛ばしてください