【JavaScript】配列内の3桁の整数を先頭に移動させる方法
はじめに
今回は、数値の配列を受け取り、その中から3桁の整数(100〜999)をすべて配列の先頭に移動させるJavaScript関数を実装します。ポイントは、元の配列内での相対的な並び順をできる限り保ちながら、3桁の数値だけを手前に集めることです。
対象となる配列は次のとおりです。
const numList = [1, 324, 34, 3434, 304, 2929, 23, 444];
この配列の場合、「324」「304」「444」の3つの3桁整数が先頭に移動することになります。それでは、実際のコードを見ていきましょう。
サンプルコード
const numList = [1, 324, 34, 3434, 304, 2929, 23, 444];
// 数値が3桁(100〜999)かどうかを判定するヘルパー関数
const isThreeDigit = num => num > 99 && num < 1000;
// 3桁の整数を配列の先頭へ移動させる関数
const bringToFront = arr => {
for (let i = 0; i < arr.length; i++) {
// 3桁でなければスキップ
if (!isThreeDigit(arr[i])) {
continue;
}
// 該当要素を切り出して配列の先頭に挿入
arr.unshift(arr.splice(i, 1)[0]);
}
};
bringToFront(numList);
console.log(numList);
コードの解説
isThreeDigitは、引数として受け取った数値が99より大きく1000未満、すなわち3桁の整数であるかどうかを判定するシンプルなアロー関数です。
bringToFrontでは、forループで配列の各要素を先頭から順にチェックします。3桁以外の数値であればcontinueで処理をスキップし、3桁の整数が見つかった場合はsplice(i, 1)でその要素を配列から切り出したうえで、unshift()によって先頭に挿入します。
実行結果
コンソールには次のように出力されます。
[ 444, 304, 324, 1, 34, 3434, 2929, 23 ]
このように、3桁の整数「444」「304」「324」が配列の先頭側に移動していることが確認できます。splice()とunshift()を組み合わせることで、配列の要素を柔軟に入れ替えることが可能です。
-
JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説
JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>
-
JavaScriptで配列の各要素に二次関数f(x)を適用してソートする方法
問題次のような二次関数が与えられています。f(x) = ax² + bx + cここで、a、b、c は3つの定数です。この課題では、ソート済みの整数配列 arr を第1引数に、a、b、c をそれぞれ第2、第3、第4引数として受け取るJavaScript関数を作成します。この関数は、配列 arr の各要素に関数 f(x) を適用し、その結果を昇順にソートした配列を返す必要があります。例えば、関数への入力が次のようであった場合を考えます。const arr = [-8, -3, -1, 5, 7, 9]; const a = 1; const b = 4; const c = 7;この場合、期待さ