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

JavaScriptで単語と句読点の配列から文を作成する方法

問題

単語と句読点が格納された配列を受け取り、それらを連結して1つの文を組み立てるJavaScript関数を作成する必要があります。

文を組み立てる際は、以下の3つのルールに従う必要があります。

  • 単語と単語の間には必ずスペースを1つ入れる
  • カンマと、その左側にある単語との間にはスペースを入れない
  • 文末にはピリオド(.)を必ず1つだけ付ける

コード例

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

const arr = ['hey', ',', 'and', ',', 'you'];
const buildSentence = (arr = []) => {
    let res = '';
    for(let i = 0; i < arr.length; i++){
        const el = arr[i];
        const next = arr[i + 1];
        if(next === ','){
            res += el;
        }else{
            if(!next){
                res += `${el}.`;
            }else{
                res += `${el} `;
            }
        }
    }
    return res;
};
console.log(buildSentence(arr));

出力結果

hey, and, you.

コードの解説

この関数では、forループを使って配列の各要素を先頭から順番に処理していきます。ポイントは、現在の要素だけでなく「次の要素(next)」の内容を確認し、その値に応じて連結方法を切り替えている点です。

  • 次の要素がカンマ(,)の場合: 現在の単語の後にスペースを入れずにそのまま連結します。これにより、「hey,」のようにカンマが直前の単語に密着した形になります。
  • 次の要素が存在しない場合(配列の末尾): 文の終わりを意味するため、ピリオド(.)を付けて連結します。これにより、文末に必ず1つだけピリオドが付くことが保証されます。
  • 上記以外の場合: 通常の単語と単語の間にあたるため、スペースを1つ挟んで連結します。

このロジックにより、カンマの前には余計なスペースが入らず、単語同士の間には適切なスペースが挿入され、文末にはピリオドが1つだけ付いた「hey, and, you.」のような自然な文を生成できます。

  1. JavaScriptで配列の最初と最後の要素を取得する方法

    JavaScriptの配列は0から始まるインデックス(ゼロベース)で管理されています。つまり、最初の要素はインデックス「0」の位置にあり、最後の要素は「配列の長さ(length) − 1」の位置に存在します。そのため、最初と最後の要素には以下のようにアクセスできます。コード例arr[0] // 最初の要素 arr[arr.length - 1] // 最後の要素 // 実際の使用例 let arr = [1, test, {}, hello]; console.log(arr[0]); console.log(arr[arr.length - 1]);実行結果1 hello補足:より簡潔に書

  2. JavaScriptのオブジェクト配列に配列メソッドを適用する方法

    JavaScriptでは、オブジェクトが格納された配列に対しても、通常の配列と同じようにpop()、push()、splice()などの標準的な配列メソッドをそのまま使用できます。オブジェクト配列はあくまで「配列」であるため、要素としてオブジェクトが入っていても配列操作のAPIは共通で動作します。 コード例 以下は、JavaScriptオブジェクトの配列に対して配列メソッドを使用するサンプルコードです。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8