如何使用JavaScript计算字符串中所有数字的总和?在下面的示例中,预期结果将是2 + 0 + 1 + 5。我的尝试如下。
var a = "weare20boysand15girls";
var i;
for(i=0; i<a.length; i++){
var b = Number(a[i]);
var c=0;
c += b;
console.log(c);
答案 0 :(得分:1)
使用正则表达式查找所有整数。并使用reduce函数计算总和
{{1}}&#13;
答案 1 :(得分:0)
您可以尝试:
var a = "weare20boysand15girls";
var res = a.replace(/\D+/g, '').split('').reduce((a, b) => {
return parseInt(a) + parseInt(b);
});
console.log(res)
答案 2 :(得分:0)
检查ascii值以识别数字字符,然后求和
var sum = 0;
var a = "weare20boysand15girls";
for (var i; i < a.length; i++) {
if (a.charCodeAt(i) >= 48 && a.charCodeAt(i) <= 57) {
sum += a.charCodeAt(i) - 48;
}
}
console.log(sum);
答案 3 :(得分:0)
我建议使用正则表达式解决方案。用数字[0-9]
正则表达式将整个字符串中的数字分开,并使用循环对它们求和。
var a = "weare20boysand15girls";
const regex = /[0-9]/g;
var num = a.match(regex);
var result=0;
num.forEach(function(match){
result+=parseInt(match);
});
console.log(result);
&#13;
答案 4 :(得分:0)
你可以
const input = "weare20boysand15girls";
const result =
// Transform the string to an array.
input.split("")
// Use the reduce function to sum only the elements that are numbers.
.reduce((sum, el) => isNaN(el) ? sum : sum + Number(el), 0);
答案 5 :(得分:0)
//试试这个:你必须将字符串拆分为一个数组,然后测试每个字符以便添加。
function sumNumbers_in_a_String() {
var strName = "weare20boysand15girls";
var strArray = strName.split("");
var c = 0;
var l = strArray.length;
for (var i = 0; i < l; i++){
if (parseInt(strArray[i])){
var b = Number(strArray[i]);
var c = c + b;
}
}
}
答案 6 :(得分:0)
在您询问 2015
的预期结果的问题中给定的字符串是
var a = "weare20boysand15girls";
此解决方案的oneliner:
console.log([...a].filter( e => isFinite(e)).join(''));
但是您将 8
的结果标记为正确答案此解决方案的oneliner:
console.log([...a].filter( e => isFinite(e)).reduce((a, b)=>parseInt(a)+parseInt(b)));
只有在无法使用其他方式时才使用正则表达式...