JavaScriptで配列の3番目に小さい数値を求める方法
問題の概要
JavaScriptの関数を作成する必要があります。この関数は、長さが3以上の数値配列を引数として受け取ります。
そして、その配列の中から3番目に小さい数値を返すことが求められます。
解決アプローチ
この問題は、以下の手順で解くことができます。
- 元の配列を破壊しないように、
slice()メソッドでコピーを作成します。 - ループを使って、最小値を2回取り除きます。
Math.min(...copy)で最小値を見つけ、indexOf()でその位置を特定し、splice()で削除します。 - 残ったコピー配列の最小値が、元の配列の3番目に小さい数値となります。
サンプルコード
以下は実際のコード例です。
const arr = [6, 7, 3, 8, 2, 9, 4, 5];
const thirdSmallest = () => {
const copy = arr.slice();
for(let i = 0; i < 2; i++){
const minIndex = copy.indexOf(Math.min(...copy));
copy.splice(minIndex, 1);
};
return Math.min(...copy);
};
console.log(thirdSmallest(arr));実行結果
上記のコードを実行すると、コンソールに以下の出力が表示されます。
4
コードの解説
この例では、配列 [6, 7, 3, 8, 2, 9, 4, 5] を小さい順に並べると [2, 3, 4, 5, 6, 7, 8, 9] となるため、3番目に小さい数値である 4 が出力されます。
まず arr.slice() によって元の配列のコピーを作成することで、元のデータを変更せずに処理を行っています。次に、for ループを2回回して最小値(2と3)を順番に取り除き、最終的に残った配列の最小値 4 を返しています。
-
JavaScriptで配列に要素を追加する方法!push・unshift・spliceの使い方を解説
JavaScriptで配列に要素を追加するには、追加する位置(末尾・先頭・任意の場所)に応じて、使用すべきメソッドが異なります。この記事では、代表的な3つのパターンをコード例とともにわかりやすく解説します。配列の末尾に要素を追加する:pushメソッド配列の末尾に要素を追加するときは、pushメソッドを使います。let veggies = [Onion, Raddish]; veggies.push(Cabbage); console.log(veggies);実行結果は以下のとおりです。[Onion, Raddish, Cabbage]pushは可変長引数に対応しているため、複数の要素を一度に
-
JavaScriptのオブジェクト配列に配列メソッドを適用する方法
JavaScriptでは、オブジェクトが格納された配列に対しても、通常の配列と同じようにpop()、push()、splice()などの標準的な配列メソッドをそのまま使用できます。オブジェクト配列はあくまで「配列」であるため、要素としてオブジェクトが入っていても配列操作のAPIは共通で動作します。 コード例 以下は、JavaScriptオブジェクトの配列に対して配列メソッドを使用するサンプルコードです。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8