JavaScriptで数値を逆順の桁配列に変換する方法
問題の概要
負でない整数が与えられたとき、その各桁を独立した要素として含み、逆順に並べた配列を返す関数を作成する必要があります。
例
348597 => [7, 9, 5, 8, 4, 3]
このように、元の数値の下の桁から順に並んだ配列が出力されれば正解です。
実装コード(forループを使用)
const num = 348597;
const reverseArrify = num => {
const numArr = String(num).split('');
const reversed = [];
for(let i = numArr.length - 1; i >= 0; i--){
reversed[i] = +numArr.shift();
};
return reversed;
};
console.log(reverseArrify(num));コンソールへの出力結果は以下のとおりです。
[ 7, 9, 5, 8, 4, 3 ]
コードの解説
String(num).split(''):数値を一度文字列に変換し、1桁ずつ分割して配列にします。これにより[ '3', '4', '8', '5', '9', '7' ]という配列が得られます。forループ:配列の末尾のインデックスから先頭に向かって処理を行い、shift()で先頭から数字を1つずつ取り出します。+numArr.shift():単項プラス演算子(+)により、取り出した文字列を数値型に変換しています。
より簡潔な代替手法
モダンなJavaScriptでは、split()・map()・reverse() を組み合わせることで、同じ処理を1行で記述できます。
const reverseArrify = num => String(num).split('').map(Number).reverse();
console.log(reverseArrify(348597)); // [ 7, 9, 5, 8, 4, 3 ]こちらの方法は可読性が高く、意図も伝わりやすいため、実務ではこの書き方が推奨されます。処理の流れは「文字列化 → 各桁を数値に変換 → 配列を反転」というシンプルなものです。
-
JavaScriptで数値の各桁の数字を一つずつ分割表示する方法
はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html> <head> &n
-
JavaScriptで配列を増加列に変換するために削除する要素数を最小化する方法
問題の概要 数字の配列を受け取り、残りの要素が左から右へ向かって値が増えていく「増加列」になるように、できるだけ少ない数の要素を削除する JavaScript 関数を作成します。 コード例 以下が実際のコードです。 const arr = [1, 100, 2, 3, 100, 4, 5]; const findIncreasingArray = (arr = []) => { // 元の配列を壊さないようコピーを作成 const copy = arr.slice(); // 隣り合う要素を順番に比較 for (let i = 0; i < copy.lengt