JavaScriptで配列から偶数桁の数値を抽出する方法
整数の配列を受け取り、その中から「桁数が偶数」である要素だけを集めた新しい配列を返すJavaScript関数を作成してみましょう。この処理は、数値を文字列に変換してその長さを調べるというアプローチで、非常にシンプルに実装できます。
問題の概要
今回の課題は、第一引数(かつ唯一の引数)として整数の配列を受け取る関数を実装することです。関数は、元の配列のうち桁数が偶数(2桁、4桁など)である要素のみを含む新しい配列を構築して返します。元の配列自体は変更しない点がポイントです。
具体例
たとえば、入力配列が次の場合:
const arr = [12, 6, 123, 3457, 234, 2];
期待される出力は次のようになります。
const output = [12, 3457];
「12」は2桁、「3457」は4桁なので偶数桁に該当し、それ以外の要素(1桁または3桁)は除外されます。
実装コード
const arr = [12, 6, 123, 3457, 234, 2];
const findEvenDigitsNumber = (arr = []) => {
const res = [];
const { length: l } = arr;
for (let i = 0; i < l; i++) {
const num = Math.abs(arr[i]);
const numStr = String(num);
if (numStr.length % 2 === 0) {
res.push(arr[i]);
}
}
return res;
};
console.log(findEvenDigitsNumber(arr));
コードの解説
- Math.abs():数値を絶対値に変換しています。これにより、負の数(-12など)でもマイナス記号の影響を受けることなく、正しく桁数を判定できます。
- String(num):数値を文字列に変換し、
lengthプロパティで桁数を簡単に取得できるようにしています。 - numStr.length % 2 === 0:桁数を2で割った余りが0であれば偶数桁と判断し、その要素を結果配列に追加します。
実行結果
このコードをコンソールで実行すると、以下の出力が得られます。
[12, 3457]
まとめ
桁数の判定にはString()による文字列変換が便利です。さらに簡潔に書きたい場合は、filter()メソッドを使ってarr.filter(n => String(Math.abs(n)).length % 2 === 0)のように一行で実装することも可能です。用途に応じて、可読性とパフォーマンスのバランスを考えて選択しましょう。
-
JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説
Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g
-
JavaScriptのlengthプロパティで配列オブジェクトの長さを取得する方法
JavaScriptにおけるlengthプロパティとはJavaScriptのlengthプロパティは、文字列や配列などのオブジェクトが持つ要素数(サイズ)を返すために使用されます。配列の場合は格納されている要素の個数、文字列の場合は文字数を取得できます。ここでは、文字列と配列オブジェクトの長さをlengthプロパティで取得するサンプルコードを紹介します。サンプルコード以下の例では、ボタンをクリックすると配列の長さが画面に表示される仕組みを実装しています。<!DOCTYPE html> <html lang="ja"> <head> <