2016-09-22 15 views

答えて

0

ダッシュを削除して、すべての文字をループし、整数として解析して追加するだけです。

var s = "5246-9346-7341-8534"; 
var sum = 0; 
var i; 
s = s.replace(/-/g, ""); 
for (i = 0; i < s.length; i++) { 
    sum += parseInt(s.substr(i, 1)); 
} 
console.log(s, "=", sum); // 74 

(私はあなたのためだけにあなたの宿題をしなかった、私がやった?)

+0

、私はこれをカバーしていない仕上げに言われたレッスンセットをいただきありがとうございます。たぶん私は私が想定している以上のことをしています。また、これはプロジェクトの50分の1のようなものではありませんが、私が無駄に思っていたような唯一の部分です。 –

4

次のことができます。

  1. replace(/\D/g, "")\D =「ではない数字で、すべての非数字を削除します")
  2. 文字列を個々の文字に分割するsplit("")
  3. reduce
  4. それらを一緒に添加する前に数(単項+であるそのうちの一つは、いくつかの方法)に各桁を変換

例:

var cardOne = "5246-9346-7341-8534"; 
 
var sum = cardOne 
 
    .replace(/\D/g, "")  // #1 
 
    .split("")     // #2 
 
    .reduce(function(x, y) { // #3 
 
    return +x + +y;   // #4 (twice) 
 
    }); 
 
console.log(sum);

+0

余分な説明をありがとうございます。 –

0

ハイフンを置換します - 文字列を反復し、解析された数値を合計に追加する - 合計を表示する(74)これを入力に追加して、ボタンを追加して他の番号を追加できる名前付き関数を作成できるようにしました。

function addMe(){ 
 
    var inputVal = document.getElementById('inputNumber').value.replace(/-/g,''); 
 
var newTotal = 0; 
 
for(i=0;i<inputVal.length;i++){ 
 
newTotal += parseInt(inputVal[i]); 
 
    } 
 
console.log('total = ' + newTotal); 
 
    //gives 74 in this instance 
 
    }
<input type="text" value="5246-9346-7341-8534" id="inputNumber"/> 
 
<button type = "button" onclick="addMe()"> Add Values</button>

関連する問題