JavaScriptで文字列配列の中から最も短い要素を見つける方法
この記事では、文字列の配列を受け取り、その中から最も短い(文字数が最小の)文字列を見つけて返すJavaScript関数の作り方を解説します。
実装のアプローチとしては、配列を一度だけ走査しながら、現時点で見つかっている最短文字列のインデックスと長さを保持していく方法がシンプルで効率的です。ここでは reduce メソッドを活用し、この処理を簡潔に記述してみましょう。
コード例
実際のコードは以下の通りです。
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));
コードの解説
reduce の初期値として、インデックスは -1、長さは Infinity を持つオブジェクトを設定しています。これにより、どのような配列でも最初の要素と正しく比較できるようになります。
各要素を走査する際には、現在の文字列の長さがそれまでに記録した長さより短ければ、インデックス(ind)と長さ(len)を更新します。すべての要素の処理が終わった後、記録されたインデックスを使って元の配列から最短の文字列を取り出して返す仕組みです。
なお、同じ長さの最短文字列が複数存在する場合は、先に出現したものが採用される点にも注意してください。
実行結果
このコードをコンソールで実行すると、以下の出力が得られます。
be
配列の中で「be」が最も文字数の少ない文字列であるため、正しく検出できていることがわかります。
-
C#プログラミング入門:ラムダ式を使って配列から最小要素を取得する方法
C#では、Min()メソッドとラムダ式を組み合わせることで、配列の中から最小の要素を簡単に見つけることができます。この記事では、具体的なコード例を通じてその方法を解説します。配列の宣言まず、対象となる整数型の配列を宣言します。int[] arr = { 10, 15, 5, 20};Min()メソッドとラムダ式による最小値の取得配列から最小の要素を取得するには、System.Linq名前空間に含まれるMin()メソッドを使用します。ラムダ式を引数として渡すことで、各要素に対して任意の処理(変換)を行った上で最小値を求めることも可能です。 Math.Abs(element));上記の例では、ラム
-
C#プログラムで配列内のK番目に小さい要素を見つける方法
はじめにC#では、配列を昇順に並べ替えてからインデックスを指定するだけで、K番目に小さい要素を簡単に求められます。本記事では、Array.Sort()メソッドを使った基本的な実装方法を、サンプルコード付きでわかりやすく解説します。ステップ1:配列を宣言するまず、対象となる整数型の配列を宣言します。int[] a = new int[] { 65, 45, 32, 97, 23, 75, 59 };ステップ2:配列をソートするここでは5番目に小さい整数を求めるものとします。まずArray.Sort()メソッドを使って配列を昇順に並べ替えます