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

JavaScriptで配列内の最も短い文字列を検索する方法

今回は、文字列の配列を受け取り、その中から最も文字数が短い文字列を見つけ出して返すJavaScript関数を作成する方法を解説します。

アプローチ

この問題は、配列を走査しながら現時点で最も短い文字列とその情報を記録していくことで解決できます。ここでは、reduce()メソッドを使い、初期値として「インデックス: -1」「長さ: Infinity」を持つオブジェクトを用意します。

各要素を走査する際に、現在記録している文字数より短い文字列が見つかれば、そのインデックスと文字数を更新していきます。最終的に、記録されたインデックスを使って元の配列から該当する文字列を取り出せば完成です。

コード例

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

const arr = ['this', 'can', 'be', 'some', 'random', 'sentence'];
const findSmallest = arr => {
    const creds = arr.reduce((acc, val, index) => {
        let { ind, len } = acc;
        if(val.length < len){
            len = val.length;
            ind = index;
        }
        return { ind, len };
    }, {
        ind: -1,
        len: Infinity
    });
    return arr[creds['ind']];
};
console.log(findSmallest(arr));

出力

このコードをコンソールで実行すると、次のような結果が出力されます。

be

配列内で最も文字数が少ない'be'(2文字)が正しく返されていることが確認できます。

  1. JavaScriptのfind()関数とは?配列から条件に合う最初の要素を取得する方法

    JavaScriptのfind()メソッドは、配列の中から指定した条件を満たす最初の要素の値を返すために使用されます。条件を満たす要素がひとつも存在しない場合は、undefinedが返されます。find()は配列全体を走査しますが、条件に一致する要素が見つかった時点で処理を終了するため、効率的に目的の要素を取得できるのが特徴です。find()の基本構文array.find(function(val, index, arr), thisValue)パラメータの説明function:各要素に対して実行されるテスト関数val:現在処理中の要素の値(必須)index:現在処理中の要素のインデックス番号

  2. 【JavaScript】ユーザーが入力した文字列が配列に含まれているかチェックする方法

    本記事では、ユーザーに文字列を入力してもらうための入力欄を備えたJavaScriptプログラムを作成します。 プログラムは、入力された値が、あらかじめコード内で定義しておいた配列の要素と一致するかどうかを判定します。入力された文字列が配列内に存在すれば画面に「true」を、存在しなければ「false」を表示します。 実装例 この動作を実現するコードは以下のとおりです。 <!DOCTYPE html> <html> <head>     <meta charset="utf-8"> &nb