我如何在javascript中将相同字符串中的数字加在一起?

时间:2016-09-22 03:29:30

标签: javascript string function variables integer

如果我已将字符串“5246-9346-7341-8534”设置为变量(cardOne),则可以更有效地将该字符串中的所有数字添加到一起,而不是输入console.log(5 + 2 + 4 + 6 + 9 +等。)

3 个答案:

答案 0 :(得分:4)

你可以:

  1. 使用replace(/\D/g, "")删除所有非数字(\D =“不是数字”)
  2. 使用split("")
  3. 将字符串拆分为单个字符
  4. 通过reduce
  5. 将数组中的数字加在一起
  6. 将每个数字转换为数字(多种方式,其中一种是一元+),然后再将它们组合在一起
  7. 示例:

    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);

答案 1 :(得分: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

(我没有为你做功课,是吗?)

答案 2 :(得分: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>