如果我已将字符串“5246-9346-7341-8534”设置为变量(cardOne),则可以更有效地将该字符串中的所有数字添加到一起,而不是输入console.log(5 + 2 + 4 + 6 + 9 +等。)
答案 0 :(得分:4)
你可以:
replace(/\D/g, "")
删除所有非数字(\D
=“不是数字”)split("")
reduce
+
),然后再将它们组合在一起示例:
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>