JavaScriptでスペース区切りの文字列内の数値を合計する方法
問題
スペースで区切られた整数を含む文字列を受け取り、その中の各整数を数値に変換したうえで、合計値を返すJavaScript関数を作成する必要があります。
解決のアプローチ
基本的な処理の流れは次の3ステップです。
- split(' ') メソッドで、文字列をスペースを基準に配列へ分割する
- map(Number) で、配列の各要素を数値へ変換する
- reduce() を使って、配列内のすべての数値を合計する
コード例
以下が実際のコードです。
const str = '1 5 12 76 2';
const sumStringNumbers = (str = '') => {
const findSum = (arr = []) => {
const sum = arr.reduce((acc, val) => acc + val);
return sum;
};
let sum = 0;
const arr = str
.split(' ')
.map(Number);
sum = findSum(arr);
return sum;
};
console.log(sumStringNumbers(str));
出力結果
96
コードの解説
まず str.split(' ') によって、元の文字列が ['1', '5', '12', '76', '2'] という文字列型の配列に分割されます。続く .map(Number) で各要素が数値へ変換され、[1, 5, 12, 76, 2] という数値配列になります。
最後に reduce() がアキュムレータ(累積値)を利用しながら配列の全要素を順番に加算し、最終的な合計値 96 を返します。
より簡潔な書き方
同じ処理は、メソッドチェーンを1行につなげることでさらにシンプルに記述できます。
const str = '1 5 12 76 2';
const sum = str.split(' ').reduce((acc, val) => acc + Number(val), 0);
console.log(sum); // 96
ここで reduce() の第2引数に初期値 0 を指定しているのがポイントです。これにより、空文字列が渡された場合でもエラーが発生せず、安全に 0 を返すことができます。
-
JavaScriptで数値と文字数が一致する文字列を検証する方法
問題文字列 str を引数として受け取るJavaScript関数を作成することを考えます。この関数は、文字列内の英字部分を、その直前にある数字に基づいて検証する必要があります。具体的には、文字列を数字で分割し、各数字とそれに続く部分文字列の文字数を比較します。すべての組み合わせが一致していれば、その文字列は有効であるとして true を返し、一箇所でも不一致があれば false を返します。例えば、以下のような文字列を見てみましょう。5hello4from2meこの文字列に対しては、true を返す必要があります。なぜなら、数字で分割すると「hello」「from」「me」という3つの部分文字
-
MySQLでカンマ区切りの数値文字列を合計する方法を解説
MySQLでは、カンマ区切りの数値文字列を合計するためのカスタム関数を自作することができます。本記事では、テーブルの作成から関数の定義、実際の実行まで、手順を追ってわかりやすく解説します。1. テーブルの作成まず、varchar型のカラムを持つテーブルを作成します。このカラムには、数値を文字列の形式(カンマ区切り)で格納していきます。mysql> create table DemoTable -> ( -> ListOfValues varchar(50) -> );Query OK, 0 rows affected (0.56 sec)2. テストデータの挿入I