JavaScriptで配列内の数値と文字列数値を区別して合計差を計算する方法
問題
今回は、整数の数値型と文字列型が混在した配列を受け取るJavaScript関数を作成します。
関数の仕様は以下の通りです。
- 文字列として表現された整数をすべて合計する
- 数値型の整数の合計から、その文字列整数の合計を引いた値を返す
コード例
以下がその実装コードです。
const arr = [5, 2, '4', '7', '4', 2, 7, 9];
const integerDifference = (arr = []) => {
let res = 0;
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(typeof el === 'number'){
res += el;
}else if(typeof el === 'string' && +el){
res -= (+el);
};
};
return res;
};
console.log(integerDifference(arr));コードの解説
このコードでは、typeof演算子を使って各要素の型を判定しています。要素が数値型の場合はそのまま加算し、文字列型の場合は単項プラス演算子(+)によって数値へ変換してから減算します。&& +elという条件により、空文字列や数値に変換できない文字列は除外される点にも注目してください。
出力
コンソールには以下の結果が出力されます。
10
この結果は、数値型の合計「5 + 2 + 2 + 7 + 9 = 25」から、文字列型の合計「4 + 7 + 4 = 15」を引いた「10」と一致しており、意図どおりに動作していることが確認できます。
-
JavaScriptのparseInt()とNumber()の違いを徹底解説!文字列を数値に変換する正しい方法
parseInt()とNumber()の違いとは?JavaScriptで文字列を数値に変換する際によく使われるのが「parseInt()」と「Number()」です。どちらも文字列から数値を取得する関数ですが、内部の動作は大きく異なります。それぞれの特徴と挙動の違いを見ていきましょう。parseInt(string):先頭から数字だけを読み取るparseInt()メソッドは、文字列の先頭から順に解析し、最初に数字以外の文字が現れた時点で解析を中止し、それまでに読み取った値を返します。例えば、次のコードは 765 を返します。parseInt(765world)もう一つの例です。次のコードは 5
-
JavaScriptのカスタム関数と組み込み関数の違いをわかりやすく解説
JavaScriptにおけるカスタム関数とは、開発者自身が目的に合わせて定義・作成する「ユーザー定義関数」のことです。JavaScriptでは、処理内容に応じて独自の関数を自由に記述できます。一方、組み込み関数は、あらかじめJavaScriptライブラリ側で用意されている関数であり、自分で実装しなくてもすぐに呼び出して利用できるのが特徴です。 カスタム関数の基本構文 カスタム関数は、functionキーワードを使って次のように定義します。 <script> <!-- function functionname