JavaScriptで小数の文字列配列を整数の文字列配列に変換する方法
JavaScriptでは、「1.00」「-2.5」のように小数を含む文字列が格納された配列を受け取り、それぞれの値から小数部分を除いた整数の文字列を要素とする新しい配列を返す関数を実装したいケースがあります。
たとえば、次のような入力が与えられた場合を見てみましょう。
const input = ["1.00", "-2.5", "5.33333", "8.984563"];
このとき、期待される出力は以下のようになります。
const output = ["1", "-2", "5", "8"];
実装方法
もっともシンプルなのは、組み込み関数の parseInt() を使う方法です。parseInt() は文字列を解析し、先頭にある整数部分だけを抽出して返します。ここでは forEach() を使って配列の各要素を順番に処理し、結果を新しい配列に格納していきます。
const input = ["1.00", "-2.5", "5.33333", "8.984563"];
const roundIntegers = arr => {
const res = [];
arr.forEach((el, ind) => {
const strNum = String(el);
res[ind] = parseInt(strNum);
});
return res;
};
console.log(roundIntegers(input));実行結果
コンソールには次のように出力されます。
[ 1, -2, 5, 8 ]
コードのポイント
1. String() による明示的な文字列化
String(el) を通すことで、仮に入力配列に数値型が混在していた場合でも安全に文字列として扱えるため、parseInt() への受け渡しが安定します。
2. map() を使ったより簡潔な書き方
forEach() で結果配列を手動で組み立てる代わりに、map() を使えば同じ処理を1行で表現できます。
const roundIntegers = arr => arr.map(el => String(parseInt(el)));
3. 注意:負の数の扱いに注意しよう
parseInt() は小数点以下を「0の方向へ切り捨てる」動作をします。そのため、parseInt("-2.5") の結果は -2 となります。一方、厳密な数学的な切り下げ(フロア)を行う Math.floor() では Math.floor(-2.5) は -3 になります。負の値を含むデータを扱う場合は、この違いを理解した上で用途に合った方を選びましょう。
-
JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説
JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
【JavaScript】カンマ区切りの文字列配列をオブジェクト配列に変換する方法
カンマ区切りの文字列(JSON形式の文字列)で構成される配列を、オブジェクトの配列に変換したいケースはよくあります。そんなときに役立つのが、JavaScriptのJSON.parse()メソッドです。このメソッドを使えば、文字列として格納されたJSONデータを簡単にJavaScriptオブジェクトへ変換できます。 以下は、文字列の配列をオブジェクトの配列に変換するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q