JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列を連結せずに数値計算を実行する方法【単項プラス演算子】

たとえば、数値を表す文字列からなる次のような配列があるとします。

const arr = ['3', '3', '55', '23', '67', '43', '12', '67', '87', '12'];

このような配列を受け取り、各要素を文字列として連結するのではなく、すべての要素を数値として合計した値を返すJavaScript関数を作成する必要があります。

解決策:単項プラス(+)演算子を使う

この問題は、単項プラス演算子(+)を使うことでシンプルに解決できます。実際に関数のコードを書いてみましょう。

コード例

const arr = ['3', '3', '55', '23', '67', '43', '12', '67', '87', '12'];
const sumString = arr => {
    const num = arr.reduce((acc, val) => {
        const sum = acc + (+val || 0);
        return sum;
    }, 0);
    return num;
};
console.log(sumString(arr));

単項プラス演算子の仕組み

文字列の前に置かれた単項プラス(+)演算子は、String型からNumber型への明示的な型変換(型強制)を強制します。文字列が有効な数値として解釈できる場合は対応する数値が返されますが、先頭の文字が有効な数値でない場合にはNaNが返されます。

さらに、(+val || 0)という記述により、変換結果がNaNのとき(falsyな値のとき)は0が代わりに使われます。そのため、数値に変換できない要素が配列に混在していてもエラーになることなく、安全に合計を求められるのがポイントです。

出力結果

コンソールには次のように出力されます。

372
  1. JavaScriptで2つ以上の文字列を結合する3つの方法(+演算子・+=・concat())

    JavaScriptで2つ以上の文字列を結合する方法を、具体的なコード例とともにわかりやすく解説します。 JavaScriptには、2つ以上の文字列を結合するためのさまざまな方法があります。代表的なのは、プラス演算子 +、プラスイコール演算子 +=、そして concat() メソッドの3つです。 なお、+ と += は代入演算子と呼ばれます。 それでは、3つの方法をすべて実際に試してみましょう! プラス演算子(+) たとえば、firstName と lastName という2つの変数があり、その結合した値を fullName という3つ目の変数に代入したいとします。この場合、次のように書くこと

  2. JavaScriptで2つのオブジェクトをマージする方法を解説

    JavaScriptでは、スプレッド構文(...)を使うことで、2つのオブジェクトを簡単に1つにマージ(結合)できます。各オブジェクトの前に「...」を付けて新しいオブジェクトリテラル内に展開するだけで、すべてのプロパティが統合されたオブジェクトが生成されます。以下に、2つのJavaScriptオブジェクトをマージするコードの例を示します。コード例<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=dev