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

JavaScriptで文の最後から2番目の単語の文字数を求める方法

問題の概要

「文」とは、空白(ホワイトスペース)で区切られた複数の文字列――いわゆる「単語」――が連結されてできた文字列のことです。本記事では、文を表す文字列を1つ受け取り、その最後から2番目の単語に含まれる文字数を返す JavaScript 関数を作成します。また、文字列に含まれる単語が2個以下の場合は 0 を返すものとします。

入力例

const str = 'this is an example string';

出力例

const output = 7;

出力が 7 になるのは、最後から2番目の単語である「example」の文字数が7だからです。

実装のアイデア

  • split() メソッドを使い、文を空白で分割して単語の配列に変換する。
  • 配列の長さが2以下の場合は、0 を返して処理を終える。
  • それ以外の場合は、インデックス len - 2 の要素(最後から2番目の単語)を取り出し、その length を返す。

サンプルコード

const str = 'this is an example string';
const countSecondLast = (str = '') => {
    const strArr = str.split(' ');
    const { length: len } = strArr;
    if(len <= 2){
        return 0;
    };
    const el = strArr[len - 2];
    const { length } = el;
    return length;
};
console.log(countSecondLast(str));

実行結果

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

7

コードの解説

まず str.split(' ') によって文字列を単語ごとの配列に分解します。続いて、分割代入(Destructuring Assignment)を使って配列の長さを取得し、単語が2個以下であれば即座に 0 を返します。条件を満たす場合は strArr[len - 2] で最後から2番目の単語へアクセスし、その文字数(length プロパティ)を結果として返しています。シンプルながら、単語数が少ない場合というエッジケースにも対応した堅実な実装といえます。

  1. JavaScriptで直方体の対角線の長さを求める方法

    問題 JavaScriptで関数を作成し、直方体の「長さ・幅・高さ」の3つの値を受け取り、その対角線(空間対角線)の長さを返すことを目指します。 アプローチ:三平方の定理の三次元への拡張 直方体の対角線は、ピタゴラスの定理(三平方の定理)を三次元に拡張した次の公式で求められます。 d = √(l² + w² + h²) つまり、各辺の2乗をすべて足し合わせ、その平方根を計算するだけです。JavaScriptでは Math.sqrt() を使うことで簡単に実装できます。 コード例 { const ll = l ** 2; const ww = w ** 2; const

  2. 【JavaScript】配列内で最も頻出する単語を上位N件抽出する方法

    問題概要英小文字のみで構成された文字列の配列 arr を第一引数として受け取り、数値 num(num は配列の長さより小さい値)を第二引数として受け取る JavaScript 関数を作成します。この関数は、配列 arr 内で最も頻出する要素を上位 num 件返す必要があります。結果は出現回数が多い順に並べます。また、出現回数が同じ単語が複数ある場合は、辞書順(アルファベット順)で先に来る単語を優先して並べます。入力例const arr = [the, day, is, sunny, the, the, the, sunny, is, is]; const num = 4;出力例const ou